我在一个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文件的绝对路径…我读到过关于长度的问题。这是一个可能的问题吗?

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


当前回答

我得到了同样的错误“元数据文件'. DLL '找不到”,我尝试了上面描述的一些事情,但错误的原因是我引用了第三方DLL文件,该文件的目标是一个。net版本高于我的项目目标。net版本。所以解决方案是改变我项目的目标框架。

其他回答

几年后再回到这个问题,这个问题很可能与Windows的最大路径限制有关:

命名文件,路径和命名空间,最大路径长度限制

在我的案例中,解决方案中的一些项目针对任何CPU,其中一些针对x86。在整个解决方案统一了平台目标后,编译错误消失了。

在我的案例中,依赖项目(取决于错误消息中的项目)在项目的“属性→应用程序→程序集信息……”下的“程序集版本”字段中缺少值。我只是在“文件版本”中添加了相同的数字,点击“确定”,编译器错误就消失了!

事实证明,重新添加AssemblyVersion然后再次构建项目会导致另一个错误,该错误声称它已经出现在项目中。这是!在解决方案资源管理器中项目的属性节点下,有一个“SolutionVersionInfo.cs”文件,该文件还包含一个装配版本属性-从项目中删除该文件解决了此错误。

在Visual Studio 2019中:

关闭Visual Studio。 删除位于同一目录中的.vsccc文件 文件夹作为解决方案文件。 打开解决方案并重新构建。

In my case it happened to me when I was referencing NuGet packages locally and moved their directory to somewhere else, I changed the path inside NuGet.Config but unfortunately I discovered that I should change the .csproject files manually to update the reference path, but the error message CS0006 was way far from describing this problem. Generally it also happens when there is a reference to DLL that couldn't be found, to be able to identify issue search your references in the project with the problem you will find some references with warning icon associated with them, try fixing those and it should work as expected.