在软件开发过程中,随着新版本的发布,旧版本的工具和项目往往需要继续使用。Visual Studio2010发布后,一些项目仍然需要使用Visual Studio 2008进行构建。本文将介绍如何在同一个TFS构建服务器上同时构建Visual Studio 2010和2008版本的解决方案。
Visual Studio 2010发布后,一些项目如Reporting或SSIS项目仍然需要使用Visual Studio 2008进行构建。这意味着即使在团队开发环境中Visual Studio 2010和2008可以共存,持续集成过程也必须支持这两个版本。然而,在同一TFS构建服务器上构建不同版本的解决方案并没有直接的方法。安装.NET 4.0和Visual Studio 2010后,构建服务器只能构建转换到这个版本的解决方案,尝试构建BI项目将会失败。
TFS构建服务器的核心是一个名为“Visual StudioTeam Foundation Build”的Windows服务,它负责启动MSBuild脚本,并且可以配置为使用特定版本的MSBuild。.NET 4.0的MSBuild能够编译2010版本的解决方案,但它无法识别Visual Studio 2008支持的商业智能项目。要构建这些项目,需要使用MSBuild 3.5。
可以通过运行TFS构建服务的控制台模式来解决这个问题。这样,可以在同一台机器上拥有多个构建服务实例,每个实例使用单独的配置。
首先,需要修改TFS构建服务的配置文件。
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Private Assemblies
在这个文件夹中找到以下文件:
创建这些文件的副本,并重命名为:
打开TFSBuildService.exe.config文件,修改MSBuildPath元素:
<add key="MSBuildPath" value="">
修改为:
<add key="MSBuildPath" value="c:\windows\microsoft.net\framework\v4.0.21006">
打开TFSBuildService2.exe.config文件,修改MSBuildPath和InteractivePort元素:
<add key="MSBuildPath" value="">
修改为:
<add key="MSBuildPath" value="c:\windows\microsoft.net\framework\v3.5">
<add key="InteractivePort" value="9192">
修改为:
<add key="InteractivePort" value="9194">
重启“Visual StudioTeam Foundation Build”Windows服务。
Control Panel/Administration Tools/Services
为TFSBuildService2.exe创建快捷方式,并将其添加到启动项。
运行TFSBuildService2.exe,将看到一个打开的控制台窗口。不要关闭它。当它打开时,构建服务器能够构建2008版本的解决方案。
打开Visual Studio 2008,Team Explorer,右键点击项目中的构建文件夹,选择“Manage Build Agents”。现在需要创建两个构建代理:
注意:2008和2010的工作目录必须不同!
在Team Explorer中,选择一个2008版本的解决方案的构建,右键点击并选择“Edit Build Definition”,然后转到“Build Defaults”并选择“Agent 2008”。关闭窗口。
在Team Explorer中,选择一个2010版本的解决方案的构建,右键点击并选择“Edit Build Definition”,然后转到“Build Defaults”并选择“Agent 2010”。关闭窗口。