C# csproj使用新的csproj格式在VS2017中不断丢失引用的项目引用

C# csproj使用新的csproj格式在VS2017中不断丢失引用的项目引用,c#,visual-studio,visual-studio-2017,csproj,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" />

我的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树中,这两个项目从依赖项树中随机消失,VS报告引用丢失,构建通过

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

我正在使用Resharper和VS2017

我尝试了dotnet恢复,但没有成功。你知道为什么这个特定的项目经常失去它的参考资料吗

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

有时项目确实从引用树中丢失,而有时它们是可见的。但是,当右键单击“添加参考”时,项目已被勾选。卸载项目并重新加载或进行完全重建只会在某个时候修复“错误”


尽管“错误列表”中充满了缺少的引用错误,但干净完整的生成不会产生错误并创建成功的生成。

您是否检查了这3个项目所针对的.NET framework版本


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

我将尝试这些方法,并向您报告我对这些消失的引用感到非常恼火。。。你会认为VS会给你一个理由。。。同样发生在VS 2019中,您是否可以使用新创建的项目包含最小回购,或者您是否能够共享构建日志?(
msbuild
dotnet
命令>
msbuild.binlog
文件的
/bl
参数-但将包含涉及的文件名以及系统的路径和环境变量)下次出现问题时,我将创建生成日志。如何通过VS 2017将/bl添加到生成环境中?我找不到指定自定义msbuild参数的位置。您需要从命令行生成(解决方案目录中的开发人员命令提示符>
msbuild/bl
)执行此操作。如果它没有出现在命令行构建中,那么它甚至可能是weirder@MartinUllrich我有一些构建日志,但我不能公开它们。如果您能提供任何见解,我将向您发送他们的链接,我们将不胜感激。我怎么联系你?