MsBuild 无法解析 MsBuildMajorVersion

rgb*_*rgb 11 .net msbuild visual-studio fody

我有超过 100 个项目的 Visual Studio 解决方案。其中五个安装了 Fody 的 nuget 包(版本 6.0.3)。当我尝试构建解决方案时,出现以下错误:

Fody.6.3.0\build\Fody.targets(38,12):错误 MSB4086:在“$(MsBuildMajorVersion)”上尝试了数值比较,结果为“”而不是数字,条件为“($(MsBuildMajorVersion)” < 16)"

在这次失败的构建之后,我尝试重复构建,经过多次尝试(有时是一次,有时是五次),构建成功完成。我试图重新安装所有 nuget 包,清除 nuget 缓存,重新安装 Visual Studio,设置MSBUILDDISABLENODEREUSE变量,但没有任何帮助。

Visual Studio 2019 的版本为 16.8.4,所有项目的 .NET Framework 版本均为 4.8。

更新:

问题只存在于我的机器上。在同事的工作站上,一切正常。我发现在构建失败后应该重新启动 Visual Studio 并且构建过程成功的提示。这个技巧对我来说是一个足够的解决方法。

rgb*_*rgb 10

问题的解决方案是从 迁移packages.configPackageReference. 您可以在 Visual Studio 2019 中执行此操作:在解决方案资源管理器中展开您的项目,然后在引用上单击鼠标右键并选择Migrate packages.config to PackageReference....


Mr *_*ian 6

尝试在这五个项目上另外安装最新的Costura.Fodynuget 包,并尝试将Fodynuget 包更新到最新6.3.0版本。

然后重建你的项目来检查问题是否发生。