我在一个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,所以我尝试了这个方法:

右键单击有问题的项目 单击应用程序选项卡,这是默认的 将输出类型控制台应用程序更改为类库

其他回答

在我的案例中,解决方案中的一些项目针对任何CPU,其中一些针对x86。在整个解决方案统一了平台目标后,编译错误消失了。

我在Visual Studio 2012中有很多项目的解决方案中遇到了这个问题。以与项目构建顺序相同的顺序手动重新构建解决方案中的每个项目(在解决方案资源管理器中右键单击并重新构建)为我修复了它。

最终我找到了一个给我一个编译错误的程序。我修复了错误,解决方案将在此之后正确构建。

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

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

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

我看到这个错误是因为我在我的代码中有以下一行(看起来我仍然在SQL模式下思考):

if(myVar is null)
    DoSomething();

Visual studio(2017)在设计或编译时没有报告错误,但项目不会构建,并给出了“missing .dll”错误。将错误的行改为:

if(myVar == null)

问题解决了。

对我来说,它发生在我将一个新项目纳入解决方案时。

Visual Studio自动选择。net framework 4.5。

像其他库一样,我将版本改为. net 4.5.2,它可以工作。