Visual Studio 2010和2008版本共存问题解决方案

在软件开发过程中,随着新版本的发布,旧版本的工具和项目往往需要继续使用。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
  • TFSBuildService.exe.config

创建这些文件的副本,并重命名为:

  • TFSBuildService2.exe
  • TFSBuildService2.exe.config

打开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”。现在需要创建两个构建代理:

  • “Agent 2008”配置参数:
    • 计算机名称:
    • 通信端口:9194
    • 工作目录:
  • “Agent 2010”配置参数:
    • 计算机名称:
    • 通信端口:9191
    • 工作目录:

注意:2008和2010的工作目录必须不同!

在Team Explorer中,选择一个2008版本的解决方案的构建,右键点击并选择“Edit Build Definition”,然后转到“Build Defaults”并选择“Agent 2008”。关闭窗口。

在Team Explorer中,选择一个2010版本的解决方案的构建,右键点击并选择“Edit Build Definition”,然后转到“Build Defaults”并选择“Agent 2010”。关闭窗口。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485