问题在最后——让我从提出上下文开始:
在使用Visual Studio时,我们在工作中面临的问题之一是确保团队中的每个人都使用相同版本的 SDK。
一个典型的问题是有人使用不同的Direct X SDK版本导致代码的不同行为,或者有人升级到更新的平台/Windows SDK 以使用一些新的 API 并让其他程序员的代码失败机器,如果他们仍然使用以前的版本。
我们用来解决其他中间件问题的一种方法是将整套库、包含文件、工具链等放在我们的源代码控制系统中,并让我们的项目使用这些,因此没有人需要安装任何东西. 我们还设法使用早期版本的 Direct X SDK 做到了这一点,但由于 SDK 和工具链之间的密切联系,我们总是遇到 Windows/Platform SDK 的问题。
由于我们现在必须同时支持 VS2010 和 VS2012,并且必须支持从 Windows XP 到 Windows 8 的目标,因此我们必须支持v100、v110和v110_xp工具集。
这意味着我们需要所有相关的编译器和相应的 SDK,无论是在我们的开发机器和构建系统上:维护成本变得非常高,特别是考虑到随机 Windows 更新和 .net 框架版本通常会破坏 msbuild。
所以问题是:
是否可以让 Visual Studio 使用未安装的工具集和 SDK,而让它使用正常 VS 安装位置之外的某个文件夹中可用的任何内容?
额外的问题:如果可行,是否可以在不更改机器上任何本地安装的配置文件的情况下做到这一点 - 即:在解决方案/项目或属性表中拥有所有这些 - 所以如果我们更改源上的结构控制系统我们不必更新每台机器?
谢谢 :)