MSBuild的较新版本可以编译较旧的C#解决方案吗?

时间:2017-11-22 13:59:13

标签: c# visual-studio msbuild

我继承了一组构建脚本,这些脚本目前在.sln文件中查看,找出它们创建的Visual Studio版本,然后调用与该版本的VS相关联的MSBuild版本。

这有必要吗?或者最新版本的MSBuild会编译较旧的解决方案/项目吗?

1 个答案:

答案 0 :(得分:1)

  

较新版本的MSBuild可以编译较旧的C#解决方案吗?

简单的答案是肯定的。

从Visual Studio构建项目时,Visual Studio将调用devenv.exe来构建项目,然后devenv调用msbuild来执行构建。

根据官方文件Port, Migrate, and Upgrade Visual Studio Projects

  

每个新版本的Visual Studio通常都支持大多数以前类型的项目,文件和其他资产。你可以像他们一样工作   你总是拥有,并且假设你不依赖于更新的功能,   Visual Studio保留了与以前版本的向后兼容性   如Visual Studio 2015,Visual Studio 2013和Visual Studio 2012。

     

然而,对某些类型的支持会随时间而变化。较新版本的Visual Studio可能不再支持某些类型或需要它   他们将被迁移和更新,以便他们不再   向后兼容。

因此,最新版本的MSBuild支持大多数以前类型的旧解决方案/项目,除了那些不再受新版MSBuild支持的解决方案/项目。