我知道MSBuild 工具集 (ToolsVersion)的工作原理和方式,但不明白如果从项目文件或 CLI 更改/使用更低或更高的 ToolVersion 会对我们的项目产生什么影响。
需要知道利弊请...
我知道MSBuild 工具集 (ToolsVersion)的工作原理和方式,但不明白如果从项目文件或 CLI 更改/使用更低或更高的 ToolVersion 会对我们的项目产生什么影响。
需要知道利弊请...
在我们的 .net 项目中更改 MSBuild 工具集 (ToolsVersion) 的缺点是什么?
据我所知,ToolsVersion指定特定版本的构建机制,实际上,这意味着使用不同版本的 MSBuild 构建项目。请参阅此链接。
如:
VS2019(MSBuild 16.0)ToolsVersion=Current:,VS2017(MSBuild 15.0)ToolsVersion=15.0:,VS2015(MSBuild 14.0) :, VS2013 ToolsVersion=14.0:。ToolsVersion=12.0
但是,每个新版本的 MSBuild 都会有一些新功能和一些可以在proj文件中使用的特殊任务。因此,MSBuild 支持向下兼容,高版本的 MSBuild 支持编译使用低版本 VS 创建的项目,以及之前低版本的新功能。
例如,如果你在 VS2015 中创建一个新项目,你可以使用 ToolsVersion 14.0,15.0并且Current没有任何错误。
如果您使用较低的 ToolsVersion 来构建您的项目,它会变成一些错误,例如Could not find the assembly reference xxxxxxx或缺少 DLL 方法。
因此,我们建议您使用ToolsVersion高于当前项目版本的(MSBuild)而不是低于当前项目版本的MSBuild。而如果你当前的项目没有任何特殊的版本方法或特性,使用低版本也没有问题,但一般不建议这样做。并且使用最新版本的 MSBuild 来构建你的项目,它可能会有性能优化和提升。
希望它可以帮助你。