我在一个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 2015时,又遇到了同样的问题。因为这个特解不在我加进去的这个列表里。

c:\windows\system32…文件夹中。 将它们移动到一个非系统文件夹,并添加一个对新文件夹的引用,最终解决了这个问题。其余的问题确实是其他人已经在这里说过的

其他回答

我也遇到过这个问题。首先,您必须手动构建您的DLL项目,右键单击“构建”。那么它就会起作用。

Visual Studio 2019这对我来说很有效:

关闭Visual Studio 删除隐藏的。vs文件夹 重新打开Visual Studio并重新构建解决方案。

我的问题实例是由一个公共项目引起的,该项目中有重复的类名(在不同的文件名下)。奇怪的是,Visual Studio无法检测到这一点,而只是破坏了构建过程。

根据错误消息,我认为文件路径没有被截断。它看起来是不正确的。如果我正确地阅读消息,它似乎正在寻找DLL文件在…

工作= - \ VersionManagementSystem \ BusinessLogicLayer \ bin \ \工具调试\ BusinessLogicLayer.dll

这不是有效路径。是否可能将构建过程中的宏定义设置为无效值?

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

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

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