8

问题在最后——让我从提出上下文开始:

在使用Visual Studio时,我们在工作中面临的问题之一是确保团队中的每个人都使用相同版本的 SDK。

一个典型的问题是有人使用不同的Direct X SDK版本导致代码的不同行为,或者有人升级到更新的平台/Windows SDK 以使用一些新的 API 并让其他程序员的代码失败机器,如果他们仍然使用以前的版本。

我们用来解决其他中间件问题的一种方法是将整套库、包含文件、工具链等放在我们的源代码控制系统中,并让我们的项目使用这些,因此没有人需要安装任何东西. 我们还设法使用早期版本的 Direct X SDK 做到了这一点,但由于 SDK 和工具链之间的密切联系,我们总是遇到 Windows/Platform SDK 的问题。

由于我们现在必须同时支持 VS2010 和 VS2012,并且必须支持从 Windows XP 到 Windows 8 的目标,因此我们必须支持v100v110v110_xp工具集。

这意味着我们需要所有相关的编译器和相应的 SDK,无论是在我们的开发机器和构建系统上:维护成本变得非常高,特别是考虑到随机 Windows 更新和 .net 框架版本通常会破坏 msbuild。

所以问题是:

  • 是否可以让 Visual Studio 使用未安装的工具集和 SDK,而让它使用正常 VS 安装位置之外的某个文件夹中可用的任何内容?

  • 额外的问题:如果可行,是否可以在不更改机器上任何本地安装的配置文件的情况下做到这一点 - 即:在解决方案/项目或属性表中拥有所有这些 - 所以如果我们更改源上的结构控制系统我们不必更新每台机器?

谢谢 :)

4

2 回答 2

0

您描述的问题无法通过您的方法解决。您真正需要的是构建服务器和完成的定义,包括使用构建服务器构建的二进制文件。您还需要一个测试套件作为构建定义的一部分,其中包含一些与所使用的构建环境相关的不变量。

于 2014-09-25T19:01:36.277 回答
0

考虑到其中一些工具安装的复杂程度,这听起来太复杂了。我会通过投资一些 PowerShell 脚本来解决这个问题,这些脚本会查看已安装的工具和工具路径并“监管”安装。检查所有内容的安装版本相对容易,包括补丁和更新。您可以每晚运行它们,或者作为构建的一部分。此外,您可以比较不同安装的各个方面,例如安装在开发人员机器上的工具版本与您的构建服务器。

这将为您提供 10% 的痛苦的 90% 的价值。

于 2013-07-16T04:28:22.167 回答