Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.net项目中更改MSBuild工具集(ToolsVersion)有哪些缺点?_C#_Compiler Errors_Msbuild_Visual Studio 2019_Devtoolset - Fatal编程技术网

C# 在.net项目中更改MSBuild工具集(ToolsVersion)有哪些缺点?

C# 在.net项目中更改MSBuild工具集(ToolsVersion)有哪些缺点?,c#,compiler-errors,msbuild,visual-studio-2019,devtoolset,C#,Compiler Errors,Msbuild,Visual Studio 2019,Devtoolset,我知道MSBuild Toolset(ToolsVersion)是什么以及如何工作的,但不了解如果从项目文件或CLI更改/使用较低或较高的ToolVersion,会对我们的项目产生什么影响。 需要知道正反两方面的信息请。。。 更改MSBuild工具集(ToolsVersion)有哪些缺点 在我们的.net项目中 据我所知,ToolsVersion指定了特定版本的构建机制,实际上,这意味着使用不同版本的MSBuild构建项目。看 例如: VS2019(MSBuild 16.0):ToolsVe

我知道MSBuild Toolset(ToolsVersion)是什么以及如何工作的,但不了解如果从项目文件或CLI更改/使用较低或较高的ToolVersion,会对我们的项目产生什么影响。

需要知道正反两方面的信息请。。。

更改MSBuild工具集(ToolsVersion)有哪些缺点 在我们的.net项目中

据我所知,
ToolsVersion
指定了特定版本的构建机制,实际上,这意味着使用不同版本的MSBuild构建项目。看

例如

VS2019(MSBuild 16.0):
ToolsVersion=Current
,VS2017(MSBuild 15.0):
ToolsVersion=15.0
,VS2015(MSBuild 14.0):
ToolsVersion=14.0
,VS2013:
ToolsVersion=12.0

但是,每个新版本的MSBuild都有一些新功能和一些特殊任务,您可以在
proj
文件中使用。因此,MSBuild支持向下兼容,而更高版本的MSBuild支持编译使用较低版本VS创建的项目,以及以前较低版本的新功能

例如,如果您在VS2015中创建一个新项目,您可以使用工具版本
14.0
15.0
Current
,而不会出现任何错误

如果使用较低的ToolsVersion构建项目,则会出现一些错误,如
找不到程序集引用xxxxxxx
或缺少DLL方法

因此,我们建议您使用高于当前项目版本的
工具版本(MSBuild),而不是低于当前项目版本的MSBuild。如果您当前的项目没有任何特殊的版本方法或功能,并且使用较低版本没有问题,但通常不建议这样做。并使用最新版本的MSBuild来构建您的项目,它可能会有性能优化和改进


希望它能对您有所帮助。

谢谢您的帮助并被接受为答案。谢谢。