在构建服务器上处理多个Windows SDK版本 我们有一个TeaMeStudio构建服务器,它有几个代理,用于在几个C++项目上签入代码。现在,我们在处理对Windows SDK的依赖关系方面遇到了一些问题 签入时仍然能够使用源代码,这太大了 平稳地 几个不能同时安装没有问题。

在构建服务器上处理多个Windows SDK版本 我们有一个TeaMeStudio构建服务器,它有几个代理,用于在几个C++项目上签入代码。现在,我们在处理对Windows SDK的依赖关系方面遇到了一些问题 签入时仍然能够使用源代码,这太大了 平稳地 几个不能同时安装没有问题。,c++,teamcity,winapi,build-server,C++,Teamcity,Winapi,Build Server,设置TeamCity代理的最简单方法是只安装Windows SDK。但是,安装两个版本的Windows SDK是有问题的,因为它似乎会覆盖以前安装的注册表项。另一种方法是从安装中挑选文件,并将其放在rsync服务器或类似服务器上,但windowsdk安装程序似乎修改了visualstudio二进制文件等,因此感觉也不太好。我也向微软咨询过,他们强烈建议不要从SDK安装中挑选文件 您在TeCaseCo上设置了C++项目,在我们的情况下您会建议什么? < P>如果您确信SDK的版本安装在每台机器上的

设置TeamCity代理的最简单方法是只安装Windows SDK。但是,安装两个版本的Windows SDK是有问题的,因为它似乎会覆盖以前安装的注册表项。另一种方法是从安装中挑选文件,并将其放在rsync服务器或类似服务器上,但windowsdk安装程序似乎修改了visualstudio二进制文件等,因此感觉也不太好。我也向微软咨询过,他们强烈建议不要从SDK安装中挑选文件


您在TeCaseCo上设置了C++项目,在我们的情况下您会建议什么?

< P>如果您确信SDK的版本安装在每台机器上的同一个位置,您使用开发人员和构建机器,那么您可以在构建脚本的开始阶段添加一个步骤,该脚本设置当前SDK供使用。您可以执行以下操作之一:

如果在任何时候只有一个生成正在进行,则使用注册表设置 使用在项目文件中为lib、bin等引用的环境变量。
虽然我们没有使用TeamCity,但我以前也看到过这一点。

安装多个SDK时您遇到了什么问题?例如,它会覆盖一个全局注册表项,而在运行Parallel builds时,它显然不起作用。我希望它能这么简单。我总是对只安装到文件夹中的库(如boost)使用环境变量。windows SDK修改注册表、系统文件甚至已安装的visual studio二进制文件…:-在谷歌搜索之后,改变注册表设置似乎是一个可行的解决方案,尽管这显然会阻碍并行构建。