我在一个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,反编译并生成项目和解决方案。由于这类错误,我无法构建解决方案。

以前答案中的提示没有帮助,但过了一段时间后,我注意到在一些项目中缺少对System.dll等几个程序集的引用。

假设有一个依赖于项目B的项目A,在项目B中没有System.dll的引用,但是构建后的错误是“元数据文件'B.dll'找不到”。

项目B中没有丢失System.dll的错误。

在项目B中添加诸如System.dll之类的库引用解决了这个问题。 (系统。数据系统。DirectoryServices等等)。

其他回答

当我试图发布我的项目时,我犯了这个错误,

所有的答案都在上面,没有帮助我……

我只是改变了我的部署和发布成功!

对我来说,它试图在曾经包含项目的路径中找到一个DLL,但我们已经将它移动到一个新目录。解决方案有通往项目的正确路径,但Visual Studio不知何故一直在旧位置寻找。

解决方案:将每个问题重命名为项目-只需添加一个字符或其他-然后重命名为原来的名称。

这必须在Visual Studio中重置某种类型的全局缓存,因为这会清除这个问题和其他类似的问题,而Clean之类的东西则不会。

我在Visual Studio 2015中遇到了这个错误,当时我从一个扩展方法的调用中删除了类型注释,只留下了空的尖括号。

所以我有obj.extensionMethod<>()而不是obj.extensionMethod<Type>()。

我会把这个归类为Visual Studio中的bug,因为我不知道这个错误是如何产生那个错误的。

在我的例子中:去添加引用。在引用管理器窗口中取消对其他项目的DLL项目的勾选。保存它。再次将引用DLL项目添加到其他项目。

非常奇怪!我尝试了之前所有的答案,不幸的是,没有一个对我的情况有效。

我遇到了两个错误:

丢失.dll文件 方法已经在另一个地方用相同的参数定义

我已经通过删除在另一个地方重复的函数,首先清除了第二个错误。

我的第一个错误-即.dll文件丢失已经解决了它自己。

我想说的是,如果您有多个错误以及.dll丢失文件错误,请尝试先解决其他错误。也许.dll错误自己解决了这个问题!