Visual studio 在源代码管理中存储Windows SDK?

Visual studio 在源代码管理中存储Windows SDK?,visual-studio,version-control,sdk,msbuild,build-automation,Visual Studio,Version Control,Sdk,Msbuild,Build Automation,问题就在最后——让我从提出背景开始: 使用VisualStudio时,我们在工作中面临的一个问题是确保团队中的每个人都使用相同版本的SDK 一个典型的问题是,有人使用不同的Direct X SDK版本,导致代码的行为不同,或者有人升级到更新的平台/Windows SDK,以便使用一些新的API,如果其他程序员仍然使用以前的版本,则代码会在他们的计算机上失败 我们用于解决其他中间件问题的一种方法是将整个库集(包括文件、工具链等)放在。。。在我们的源代码控制系统中,我们的项目可以使用这些,所以没有人

问题就在最后——让我从提出背景开始:

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

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

我们用于解决其他中间件问题的一种方法是将整个库集(包括文件、工具链等)放在。。。在我们的源代码控制系统中,我们的项目可以使用这些,所以没有人需要安装任何东西。 我们也成功地在早期版本的Direct X SDK中做到了这一点,但由于SDK和工具链之间的密切联系,我们总是在Windows/Platform SDK中遇到问题

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

这意味着我们需要所有相关的编译器和相应的SDK,无论是在我们的开发人员机器上还是构建系统上:维护这些编译器和SDK的成本越来越高,特别是考虑到随机的windows更新和.net framework发布通常会破坏msbuild

因此,问题是:

  • 有没有可能让VisualStudio使用未安装的工具集和SDK,而不是使用普通VS安装位置以外的某个文件夹中的任何可用工具

  • 附加问题:如果可行,是否可以在不更改机器上任何本地安装的配置文件的情况下执行此操作-即:将所有这些都包含在解决方案/项目或属性表中-因此,如果我们更改源代码管理系统的结构,就不必更新每台机器


谢谢:)

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


这将为你带来90%的价值,10%的痛苦。

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

我会为VM(构建服务器)方式提供担保。或者,也可以选择ghost安装映像。(在某种程度上,你所描述的是UNIX世界,不幸的是,微软不太适合这幅图)对这两个问题都是肯定的,但这与其说是一个琐碎的操作,不如说是一个黑客。它是您可以在构建机器上设置的东西。在任何情况下,您都应该将其分支出来,并在准备使用时将其提交给dev分支。我同意@sehe的观点,即您应该尝试构建标准vm,并强制开发人员使用相同的环境。这是一个严格的过程,每个人都应该遵循,除非有人想破坏构建并伤害其他人。如果有人确实需要使用更新的SDK,请为他/她构建一个新的VM映像,并要求签入一个分支。一旦时机成熟,每个人都应该升级到新的VM映像。如果管理得当,就不需要将SDK签入源代码管理,因为这不是解决方案。@LexLi公平地说,我在chat and中与Mickël讨论了这一点。(这仍然是构建服务器的一个选项)确实存在(针对Windows)提供直接GPU访问的解决方案,即所谓的引导到VHD。Windows7和Windows8都支持这一点。它只使用虚拟硬盘,与双引导非常相似。您可以评估这对您的团队是否足够。