.net MSBuild错误:“0”;无法解析此引用。找不到程序集…“;
我知道已经有一个问题询问了完全相同的错误消息,但不幸的是,接受的答案不适合我 今天早上早些时候,我成功构建了当前解决方案,但构建在大约15分钟前突然开始失败,并显示以下错误消息: C:\程序文件 (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): 警告MSB3245:未能解析此引用。找不到 程序集“MyAssembly.dll”。检查以确保该程序集存在 在磁盘上。如果您的代码需要此引用,您可以 编译错误 不幸的是,我的代码需要这个DLL。因为无法定位,所以我的解决方案无法编译 我尝试过清理,然后再次构建我的解决方案,但那是无用的 我注意到该引用旁边有一个黄色图标,因此我删除了该引用,然后从我的.net MSBuild错误:“0”;无法解析此引用。找不到程序集…“;,.net,visual-studio-2015,msbuild,.net,Visual Studio 2015,Msbuild,我知道已经有一个问题询问了完全相同的错误消息,但不幸的是,接受的答案不适合我 今天早上早些时候,我成功构建了当前解决方案,但构建在大约15分钟前突然开始失败,并显示以下错误消息: C:\程序文件 (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): 警告MSB3245:未能解析此引用。找不到 程序集“MyAssembly.dll”。检查以确保该程序集存在 在磁盘上。如果您的代码需要此引用,您可以 编译错误
.csproj
文件中
标记内指定的完全相同的位置再次添加它。(位置是\bin\Debug
文件夹。)黄色图标随后消失
但是,在我单击“生成解决方案”(在调试
模式下)后,黄色图标再次出现,我再次看到相同的MSBuild错误消息,通知我无法找到DLL
如何解决此问题?将项目引用添加到
MyAssembly
项目,而不是对已编译输出的引用。右键单击需要MyAssembly.dll
的项目的引用节点,转到“添加引用”,然后选择“解决方案”:
假设您有两个项目(X和Y),其中Y取决于X。VisualStudio将首先构建X,然后构建Y 可以通过以下两种方式之一添加对Y中X的引用:
- 在解决方案中引用项目
- 在
文件夹中引用编译后的输出\bin\Debug
如果引用是指向
\bin\Debug
中的输出,则Visual Studio将不知道编译程序集的顺序,并且可以尝试在X之前编译Y,在\bin\Debug
中找不到文件,然后不编译。相同的问题,不同的解决方案:
我的解决方案由一个dll项目和一个exe测试项目组成。
VS以某种方式将启动项目更改为dll。
右键单击您的解决方案,
选择属性,
检查启动项目和项目依赖项设置。我的问题被深埋了3层。这个答案帮助我找到了它。