重命名项目→"无法解析此引用。无法找到组件"

时间:2016-01-27 08:47:10

标签: c# .net visual-studio fody fody-costura

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

  

警告无法解析此引用。无法找到程序集" WordAPI"。检查以确保磁盘上存在程序集。如果您的代码需要此引用,则可能会出现编译错误。 OfferteHost

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

它是如何开始的?

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

我是如何尝试修复的?

  • 我更改了执行项目文件中的HintPath 组件:

    <HintPath>..\WordAPI\bin\Debug\WordAPI.dll</HintPath>
    
  • 从执行的程序集中删除了引用并对其进行了读取。
  • 在整个解决方案中删除了我的调试/发布文件夹并重建了解决方案

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

我的参考资料:

enter image description here

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

enter image description here

3 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:1)

  1. 路径不应指向/bin文件夹。 相反,您可能希望引用
  2. 中的/packages文件夹
  3. 参考属性中的“Copy Local”属性应为“True”,因此在部署应用程序时实际复制了引用的.dll文件。

答案 2 :(得分:0)

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

至少适用于VS2015。