2

每次构建解决方案时,都会收到以下警告:

警告 无法解析此引用。找不到程序集“WordAPI”。检查以确保该程序集存在于磁盘上。如果您的代码需要此引用,您可能会遇到编译错误。提供主机

然而,一切似乎都很好,这只是一个警告,但这让我很烦恼。

怎么开始的?

我重命名了我的解决方案中的一个项目。使用右键单击-> 重命名选项。我还使用搜索和替换来重命名项目中所有文件的命名空间。更改了 AssemblyInfo.cs 文件。在应用程序选项卡上的项目属性中,我更改了Assembly Nameand Default Namespace。如果重要的话,我也在使用Costura.Fody

我是如何尝试修复它的?

  • HintPath我在执行程序集的项目文件中更改了:

    <HintPath>..\WordAPI\bin\Debug\WordAPI.dll</HintPath>
    
  • 从我正在执行的程序集中删除了引用并重新添加了它。
  • 在解决方案中删除了我的调试/发布文件夹并重建了解决方案

我真的找不到解决方案,很想开始一个空白的解决方案,然后复制那里的所有内容......


我的参考的属性:

在此处输入图像描述

项目在文件资源管理器中的位置:

在此处输入图像描述

4

3 回答 3

2

假设 WordAPI 与您的可执行文件在同一个解决方案中,则该引用不应使用 HintPath。使用解决方案 -> 项目选择删除和​​添加参考。可执行 csproj 中的引用应如下所示:

<ProjectReference Include="..\WordAPI.csproj">
  <Project>{GUID}</Project>
  <Name>WordAPI</Name>
</ProjectReference>

正如评论中所说,HintPath 不应指向 Debug 目录,因为同一路径用于 Debug 和 Release 构建配置,这可能是您问题的根源。

如果没有关于您的项目、解决方案、构建路径、构建配置的更多详细信息,很难给出更好的答案。

于 2016-01-27T09:22:27.973 回答
1
  1. 路径不应指向该/bin文件夹。相反,您可能希望/packages引用
  2. Reference 属性中的 ' Copy Local' 属性应该是 ' True',因此在部署应用程序时实际上会复制引用的 .dll 文件。
于 2017-05-31T09:18:14.800 回答
0

假设您在同一个解决方案中有组装项目和测试项目(可执行),您必须进入解决方案的属性页,然后“公共属性”>“项目依赖项”,然后在“项目”中选择您的测试项目” 组合框,然后选中您的装配项目的“取决于”复选框。因此,现在您的程序集将在开始构建测试可执行文件之前构建,并且警告将消失。否则构建将是并发的,并且在开始构建测试可执行文件时程序集可能还不存在。

这至少适用于 VS2015。

于 2018-01-23T14:56:01.360 回答