问题描述:

当我使用VS编译时,我得到一个错误,提示“尝试在条件“($(MsBuildMajorVersion) < 16)”中对计算结果”,该怎样解决?

解决方式:

这个问题的原因是你正在使用的是旧版本的MSBuild,但你尝试使用新版本的语法。因此,你需要更新到最新版本的VS或手动指定使用旧版本的语法。

下面提供一些具体的实现方式:

  1. 更新到最新版本的VS

最简单的解决方法是将VS更新到最新版本。最新版本的VS 2019默认使用最新版本的MSBuild,并支持新语法。如果你正在使用旧版本的VS,请前往Visual Studio官网下载最新版本的VS。

  1. 手动指定使用旧版本的语法

另一种解决方法是手动指定使用旧版本的语法。通过修改项目文件(.csproj/.vbproj)中的条件,可以手动指定项目使用旧版本的语法。具体来说,在项目文件的属性组中添加以下条件即可:

<PropertyGroup>
    <MsBuildMajorVersion>15</MsBuildMajorVersion>
</PropertyGroup>

这将指示MSBuild使用15版本,从而避免出现“尝试在条件“($(MsBuildMajorVersion) < 16)”中对计算结果”的错误。

示例代码:

下面是一个示例项目文件,其中已添加了上述条件:


net5.0
Exe
bin\Debug\net5.0\obj\
15







PreserveNewest

注意,这只是一个示例文件,实际的项目文件可能会有所不同。根据你的具体情况,你需要将条件添加到正确的位置。

总结:

“尝试在条件“($(MsBuildMajorVersion) < 16)”中对计算结果”的错误通常是由于使用较旧版本的VS或MSBuild导致的。你可以通过更新到最新版本的VS或手动指定使用旧版本的语法来解决这个问题。在手动指定语法时,请确保将条件添加到项目文件的正确位置。