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

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


当前回答

到目前为止,这几十个答案中没有一个对我有用。在我的情况下,我也得到了错误:

元组元素名称“Value”被推断出来。请使用语言版本7.1或更高的版本通过推断的名称访问元素

这出现在构建时“元数据文件'.dll'找不到”错误旁边,但它很快就消失了,因为错误有时会在IDE“赶上”。

双击错误以找到它,并删除有问题的代码,修复它。

否则,你可以在Visual Studio中试试这个:

菜单项目→<项目名称>属性→构建→按钮高级→语言版本→c# <最新小版本>(例如:“c# 5.0”)

这也能解决问题。

看起来“元数据文件“.dll”无法找到”通常是一些其他潜在问题的症状,因此,如果没有一个顶级解决方案对您有效,请检查其他错误和警告,并尝试找到真正的问题。

其他回答

我使用Visual Studio 2019得到了同样的错误。 在仔细研究了后台发生的事情后,我发现在追加的类库上有错误,这反过来又没有正确编译,同时通过错误“元数据文件未找到”。纠正错误,重新编译,所有工作。

在我的例子中,答案是在输出选项卡的分析中找到的。

右键单击解决方案并单击Clean。 右键单击解决方案并单击Rebuild。

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

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

在获得最新的(Team Foundation Server (TFS)命令)后,我遇到了这个问题。

在解决了冲突之后,我发现使用了项目中不存在的名称空间的语句。

我删除了using语句然后清理并重建,一切正常。

在我的案例中,我犯了这个错误,因为我的一个项目使用了不同于其他解决方案的。net框架版本。我使用NuGet包管理器来安装NLog,所以,我认为,它安装了这个项目的。net版本。

我尝试了这篇文章中的所有解决方案,但没有一个有效。我删除了NLog,清理了解决方案和trid编译:同样的事情,CS006错误。

当我从这个项目中删除obj\Debug中的所有文件时,解决方案就编译了。