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

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


当前回答

在VS 2019中,在项目References下,通过展开Analyzers检查是否有任何未解决的项:

对我来说,有两个路径错误的.dll文件。右键单击每个并选择删除:

构建项目,然后构建解决方案。 完成了。

其他回答

我也遇到了同样的问题。Visual Studio没有构建被引用的项目。

写产品说明:

右键单击解决方案并单击Properties。 在左侧单击“配置”。 确保选中了“Build”下无法找到的项目的复选框。如果已选中,则取消选中,单击应用并再次选中方框。 (可选)必须在解决方案属性的发布和调试模式下执行此操作。

截图说明:

人们说一幅画胜过千言万语。点击动图放大,希望你很容易理解:

删除bin/obj文件夹,然后重新构建项目对我来说很有效。

在我的情况下,我认为发生的是,我经历了一个运行时错误,我第一次构建项目,所以我的dll文件不是没有生成。

这发生在从另一个项目引用一个项目时。我引用的项目就是有问题的那个。

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

我也犯了同样的错误。它隐藏在下面的路径。 DLL文件的路径类似于“D:\Assemblies Folder\Assembly1.dll”。

但是程序集引用的原始路径是“D:\Assemblies%20Folder\Assembly1.dll”。

由于此路径名称变化,无法从其原始路径检索程序集,因此抛出“未找到元数据”错误。

解决方案是在堆栈溢出问题我如何替换所有的空格与%20在c# ?

在我的例子中,我注释掉了一个特定(空)命名空间中的类:

namespace X.Y.Z.W
{

    // Class code

}

当我删除命名空间代码和它的导入(使用)命令时,问题就解决了。

在构建中,它还说-随着项目丢失的DLL文件:

类型或命名空间名称“W”在命名空间“X.Y.Z”中不存在(您是否缺少一个程序集引用?)