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

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


当前回答

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

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

其他回答

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

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

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

在我的案例中,问题是我手动删除了一个标记为“缺失”的非编译文件。一旦我删除了对现在丢失的文件的引用并重新编译-一切都很好。

我遇到了这个问题。在我的例子中,多个c#项目被引用为DLL文件。在一个被用作DLL文件(在其他项目中)的项目中,任何编译时错误都会导致大量错误。原因是,编译时错误阻止了相应DLL文件的创建,这将导致在引用缺失DLL文件的项目中出现一系列错误。

因此,当您在解决方案资源管理器中重新构建时(忽略琐碎的编译时错误),会出现一堆“元数据文件.dll找不到”的错误(使您认为除了简单的重新构建之外,您还做了什么错误)。

如果您面临这个问题,那么最好的解决方案是清理解决方案,然后逐个构建每个项目,以找出哪个项目引发了错误。

我也遇到过同样的问题。在我的例子中,我引用了一个类库项目,它的. net版本比我的项目更高,VS未能构建该项目,并引发了与你发布的相同的错误。

我只是简单地将我的类库项目的。net版本(破坏构建的那个)设置为与引用项目的。net版本相同,问题就解决了。

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

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