我遇到了类似的问题,但是v4.7.2
。即,我不断收到这样的构建日志消息:
error : Your project does not reference ".NETFramework,Version=v4.7.2" framework. Add a reference to ".NETFramework,Version=v4.7.2" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.
尽管事实看起来很相似,但以上建议的步骤均不适合我。每次构建后,我一直看到此消息。似乎无能为力。
实际上,问题在于,由于迁移,我不得不将两个项目放在一个代码文件夹中。其中一个针对.Net Core,另一个针对.Net Framework,都引用了相同的.Net标准库。显然,他们共享obj
核心项目放置project.assets.json
文件的文件夹。实际上,正是此文件干扰了Framework项目,从而阻止了其正常构建。即使您执行了从packages.config到PackageReference ...的迁移,似乎也建议这样做。
您可以通过将以下代码片段放入Framework项目文件中来尝试解决此问题:
<Project>
...
<PropertyGroup>
<BaseOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/bin</BaseOutputPath>
<BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath>
</PropertyGroup>
...
</Project>
它立即为我工作,直到后来我专心阅读我们为什么需要它以及它为什么起作用。我意外地发现它在第2部分的迁移样品WPF应用程序到.NET核心3下确保在.NET Framework项目还是建造部分。BaseOutputPath
和BaseIntermediateOutputPath
msbuild变量可以在此处找到,不确定是否在任何地方都对其进行了很好的记录。