MSBuild错误:"无法解析此引用。无法找到组件......"

时间:2017-11-30 09:41:54

标签: .net visual-studio-2015 msbuild

我知道已经有一个问题here询问完全相同的错误消息,但不幸的是,接受的答案对我没有用。

我能够在今天早上成功构建我当前的解决方案,但是〜15分钟前构建突然失败,并显示以下错误消息:

  

C:\ Program Files   (86)\的MSBuild \ 14.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(1820,5):   警告MSB3245:无法解析此引用。找不到   程序集" MyAssembly.dll"。检查以确保装配存在   在磁盘上。如果您的代码需要此引用,您可能会得到   编译错误。

不幸的是,我的代码需要这个DLL。因为无法找到它,我的解决方案无法编译。

我已经尝试过清洁,然后再次构建我的解决方案,但这没用。

我注意到此引用旁边有一个黄色图标,因此我删除了引用,然后从<HintPath>文件中.csproj标记内指定的完全相同位置再次添加引用。 (该位置是\bin\Debug文件夹。)然后黄色图标消失。

然而,在我点击&#34;构建解决方案&#34;之后立即; (在Debug模式下),黄色图标再次出现,我再次看到相同的MSBuild错误消息,通知我无法找到DLL。

如何解决此问题?

2 个答案:

答案 0 :(得分:6)

MyAssembly项目添加项目引用,而不是对已编译输出的引用。右键单击需要MyAssembly.dll的项目的References节点,转到“Add Reference”,然后选择“Solution”:

Solution reference

假设您有两个项目(X和Y),Y取决于X. Visual Studio将首先构建X,然后构建Y.

您可以通过以下两种方式之一在Y中添加对X的引用:

  • 在解决方案中引用项目
  • 引用\bin\Debug文件夹
  • 中的编译输出

如果引用是解决方案中的项目,那么Visual Studio将知道编译项目的顺序(X,然后是我们示例中的Y)。

如果引用是\bin\Debug中的输出,那么Visual Studio将不知道编译程序集的顺序,并且可能尝试在X之前编译Y,而不是在\bin\Debug中找到该文件,而不是编译。

答案 1 :(得分:0)

同样的问题,不同的解决方案:

我的解决方案由一个 dll 项目和一个 exe 测试项目组成。 VS 以某种方式将启动项目更改为 dll。 右键单击您的解决方案, 选择属性, 检查启动项目和项目依赖项设置。

相关问题