我继承了一组构建脚本,这些脚本目前在.sln文件中查看,找出它们创建的Visual Studio版本,然后调用与该版本的VS相关联的MSBuild版本。
这有必要吗?或者最新版本的MSBuild会编译较旧的解决方案/项目吗?
答案 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支持的解决方案/项目。