重命名项目 → "Could not resolve this reference. Could not locate the assembly"

Renaming project → "Could not resolve this reference. Could not locate the assembly"

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

Warning Could not resolve this reference. Could not locate the assembly "WordAPI". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. OfferteHost

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

它是怎么开始的?

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

我是如何尝试修复它的?

我真的找不到解决方案,开始一个空白的解决方案并复制其中的所有内容很诱人...


属性我参考:

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

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

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

如评论中所述,HintPath 不应指向调试目录,因为调试和发布构建配置使用相同的路径,这可能是问题的根源。

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

  1. 路径不应指向 /bin 文件夹。 相反,您可能想引用
  2. 中的 /packages 文件夹
  3. Reference 属性中的'Copy Local' 属性 应该是'True',因此在部署应用程序时实际复制了引用的.dll 文件。

假设您在同一个解决方案中有程序集项目和测试项目(可执行文件),您必须进入解决方案的 属性 页面,然后 "Common properties" > "Project Dependencies",然后在 "Projects" 组合框中 select 您的测试项目,并检查您的装配项目的 "Depends on" 复选框。 因此,现在您的程序集将在开始构建测试可执行文件之前构建,并且警告将消失。否则构建将是并发的,并且在开始构建测试可执行文件时程序集可能还不存在。

这至少适用于 VS2015。