csproj使用新的csproj格式在VS2017中丢失引用的项目引用

时间:2017-11-05 00:47:11

标签: c# visual-studio visual-studio-2017 csproj

我的csproj有以下几行:

<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
  <PropertyGroup>
    <Deterministic>False</Deterministic>

  <ItemGroup>
    <ProjectReference Include="..\blah.Common\blah.Common.csproj" />
    <ProjectReference Include="..\blah.Model\blah.Model.csproj" />
  </ItemGroup>

引用的项目构建正常。但是在VS树中,这两个项目从Dependencies树中随机消失,VS将引用报告为缺失并且构建通过。

重新加载/重建/清理/重新启动/删除然后以无特定顺序再次添加项目通常会修复它。在另一个项目中出现合法的构建错误后,问题就会恢复。

我正在使用Resharper和VS2017

我尝试过没有运气的dotnet恢复。任何想法为什么这个特定的项目不断失去其参考?

编辑:我刚刚意识到我错误地提到构建为失败。它没有失败并且构建成功,但是我的项目有红色错误和警告,说缺少引用。成功构建后,红色警告/错误消失,然后再次随机返回。

有时,参考树中的项目实际上是丢失的,有时它们是可见的。右键点击&#34;添加参考&#34;但该项目已被勾选。卸载项目并重新加载或进行完全重建可以修复&#34;错误&#34;只是为了让它在某个时刻回来。

即使&#34;错误列表&#34;缺少参考错误,干净和完整的构建不会产生错误,并创建一个成功的构建。

1 个答案:

答案 0 :(得分:1)

您是否检查过这3个项目所针对的.NET框架版本?

框架版本之间的不兼容性允许添加引用但在构建/运行时导致缺少引用。要验证这确实是问题,您可以检查Visual Studio在构建解决方案时产生的警告。找到问题根本原因的另一种方法是将其中一个项目添加为DLL引用,同时将另一个项目作为项目引用。如果DLL引用不起作用,则意味着源项目和目标项目之间存在一些配置不匹配(例如.NET框架版本)。如果DLL版本有效,则表示项目引用被破坏,在这种情况下,您可以检查提供的路径是否正确。