我在一个WPF, c# 3.0项目上工作,我得到了这个错误:

Error 1 Metadata file
'WORK=- \Tools\VersionManagementSystem\BusinessLogicLayer\bin\Debug
\BusinessLogicLayer.dll' could not be found C:\-=WORK=- \Tools
\VersionManagementSystem\VersionManagementSystem\CSC VersionManagementSystem

这是我如何引用我的usercontrols:

xmlns:vms="clr-namespace:VersionManagementSystem"
<vms:SignOffProjectListing Margin="5"/>

每次构建失败后都会发生这种情况。我能得到解决方案编译的唯一方法是注释掉所有用户控件并重新构建项目,然后取消注释用户控件,一切正常。

我已经检查了构建顺序和依赖项配置。

正如你所看到的,它似乎截断了DLL文件的绝对路径…我读到过关于长度的问题。这是一个可能的问题吗?

注释、构建和取消注释是非常烦人的,构建变得非常烦人。


当前回答

The Visual Studio IDE doesn't do any building behind the scenes, the Msbuild application does. The VS IDE essentially just constructs the project file that is used by Msbuild and quite often it makes mistakes if you leave it up to the IDE to figure things out on it's own. If you are getting the Metadata file '.dll' could not be found error it is likely due to the fact that the correct/expected assemblies are not being found. So perhaps Visual Studio might be creating a project file for a 4.5 framework app, and expecting 4,5 assemblies, while you are referencing 4.0 assemblies. So look at your Visual Studio settings for incompatibilities or go into the project file yourself, and manually fix it by specifying the correct path <Reference Include="C:\\correct path to assembly\\yourAssembly.dll" />.

其他回答

好吧,我的答案不只是所有解决方案的总结,但它提供了更多。

节(1):

一般解决方案:

我有四个这样的错误(“元数据文件找不到”),还有一个错误是“源文件无法打开(“未指定的错误”)”。

我试图摆脱'元数据文件找不到'错误。为此,我阅读了许多文章,博客等,发现这些解决方案可能是有效的(总结在这里):

Restart Visual Studio and try building again. Go to 'Solution Explorer'. Right click on Solution. Go to Properties. Go to 'Configuration Manager'. Check if the checkboxes under 'Build' are checked or not. If any or all of them are unchecked, then check them and try building again. If the above solution(s) do not work, then follow sequence mentioned in step 2 above, and even if all the checkboxes are checked, uncheck them, check again and try to build again. Build Order and Project Dependencies: Go to 'Solution Explorer'. Right click on Solution. Go to 'Project Dependencies...'. You will see two tabs: 'Dependencies' and 'Build Order'. This build order is the one in which solution builds. Check the project dependencies and the build order to verify if some project (say 'project1') which is dependent on other (say 'project2') is trying to build before that one (project2). This might be the cause for the error. Check the path of the missing .dll: Check the path of the missing .dll. If the path contains space or any other invalid path character, remove it and try building again. If this is the cause, then adjust the build order.


节(2):

我的具体情况是:

我尝试了上面所有的步骤,并重新启动了几次Visual Studio。但是,这并没有帮助我。

所以,我决定摆脱我遇到的其他错误('源文件无法打开('未指明的错误')')。

我看到一篇博客文章:TFS错误-源文件无法打开(“未指明的错误”)

我尝试了那篇博客文章中提到的步骤,我摆脱了“源文件无法打开(“未指明的错误”)”的错误,令人惊讶的是,我摆脱了其他错误(“元数据文件无法找到”)。


节(3):

这个故事的寓意:

尝试上文第(1)节中提到的所有解决方案(以及任何其他解决方案)来消除错误。如果没有解决问题,按照上面第(2)节中提到的博客,从.csproj文件中删除源代码控制和文件系统中不再存在的所有源文件的条目。

我在一个.csproj文件中有一个合并冲突,最终得到了一个构建目标的两个副本。

<编译包含=“SystemCodes\APSystemCodes.cs” />

在我消除了复制构建工作。

对我来说,这是错误的文件夹名称。如果从将空格替换为'%20'的源代码关闭,则会得到此类错误。 解决方案-重命名命名不当的文件夹。

在我的案例中,设置目标框架解决了问题:

右键单击项目并选择Properties 在Application中,将目标框架更改为与主项目相同(例如。".NET Framework 4.5”)。

对我来说,这是一个未使用的导入“在控制器上使用ApsNetCore”。拆下来,清洗,重建,它工作了。