演练:配置 Team Build 以生成 Visual Studio 安装项目

更新:2007 年 11 月

在生成过程中,可以通过添加自定义任务或使用在指定点执行的 MSBuild 任务来自定义 Team Foundation Build。本主题解释通过自定义生成定义来使用 MSBuildExec 任务生成 Visual Studio 安装项目时所需的步骤。

先决条件

为了完成本演练,您需要:

一台满足以下条件的客户端计算机:

  • 已安装 Development Edition

  • 已安装团队资源管理器

  • 到 Team Foundation Server 的可用连接

  • 具备要用作工作区的本地目录

一个满足以下条件的团队项目:

  • 已创建生成定义

  • 设有映射到本地目录的源代码管理工作区

    有关更多信息,请参见如何:创建映射的工作区。本演练使用本地工作区:C:\DeploymentProjects。

  • 启用源代码管理

    1. 若要确保已将 Visual Studio 配置为使用 Team Foundation 版本控制,请在“工具”菜单上单击“选项”,再单击“源代码管理”。

    2. 在“当前源代码管理插件”列表框中选择“Visual Studio Team Foundation Server”。

具备已安装 Team Foundation Build 的生成代理。

必须在生成代理上安装 Visual Studio,才能使用 MSBuildExec 任务来调用 devenv.exe,以生成安装项目。有关更多信息,请参见 Exec 任务Devenv 命令行开关

说明:

生成代理是运行生成的计算机。有关更多信息,请参见如何:创建和管理生成代理

必需的权限

若要完成本演练,必须将“管理生成”和“管理工作区”权限设置为“允许”。还必须将“签入”和“签出”权限设置为“允许”。

若要创建团队项目,您的“创建新项目”权限必须设置为“允许”,并且您必须是 Windows SharePoint Server 中“SharePoint Central Admins”组的成员且在 SQL Reporting Services 中具有“内容管理员”权限。

您必须在运行由 Team Foundation Build 创建的安装程序的计算机上具有安装权限。

创建 Visual Studio 项目

本演练中的过程会创建一个简单的 C# Windows 窗体应用程序,该程序将用作配置 Team Foundation Build 以生成 Visual Studio 安装项目的示例。

创建 Visual Studio Windows 窗体应用程序

  1. 在“文件”菜单上,指向“新建”,然后单击“项目”。

  2. 在“新建项目”对话框中,在“项目类型”窗格中选择“Visual C#”。在“模板”窗格中选择“Windows 窗体应用程序”。

  3. 在“名称”框中键入 HelloWorldTest。在“位置”框中键入“C:\DeploymentProjects”,或打开为团队项目选择的本地工作区。

  4. 单击“确定”。

    HelloWorldTest 显示在解决方案资源管理器中,Form1.cs 显示在 Windows 窗体设计器中。

  5. 在“视图”菜单上,单击“工具箱”以使控件列表可见。

  6. 将一个“Button”控件拖动到窗体中。

  7. 双击新按钮以打开代码编辑器。

    Visual C# 已插入一个称为 button1_Click 的方法。

  8. 将以下代码添加到方法中:

    private void button1_Click(object sender, EventArgs e)
            {
                MessageBox.Show("Hello World!");
    
            }
    
  9. 在“文件”菜单上单击“全部保存”保存更改。

  10. 在“生成”菜单上单击“生成 HelloWorldTest”以生成解决方案并验证没有生成错误。

创建部署项目

  1. 在解决方案资源管理器中选择“HelloWorldTest”解决方案,然后在“文件”菜单上指向“添加”,再单击“新建项目”。

  2. 在“添加新项目”对话框中的“项目类型”窗格中,展开“其他项目类型”节点,单击“安装和部署”,再单击“模板”窗格中的“安装项目”。在“名称”框中键入 HelloWorldTestInstaller。

  3. 单击“确定”关闭对话框。

    项目添加到解决方案资源管理器中,并且“文件系统编辑器”打开。

将 HelloWorldTest 应用程序添加到安装程序中

  1. 在解决方案资源管理器中选择“HelloWorldTestInstaller”。在“文件系统编辑器”中右击“应用程序文件夹”节点,指向“添加”,再单击“文件”。

  2. 在“添加文件”对话框中打开 HelloWorldTest.exe 的位置,选择 HelloWorldTest.exe,再单击“打开”。

    在本演练中的位置为“C:\DeploymentProjects\HelloWorldTest\HelloWorldTest\obj\Debug\HelloWorldTest.exe”。文件路径可能会依本地工作区的位置而不同。

  3. 在“文件”菜单上单击“全部保存”保存更改。

  4. 在“生成”菜单上单击“生成 HelloWorldTestInstaller”以生成安装程序的本地副本并验证没有生成错误。

    若要验证安装项目生成了安装程序,请打开输出文件位置。在输出文件位置应该可以看到 HelloWorldTestInstaller.msi 和 setup.exe。

    说明:

    若要查找输出文件,请在解决方案资源管理器中右击“HelloWorldTestInstaller”项目,再单击“属性”。在“HelloWorldTestInstaller 属性页”对话框中,“输出文件名”框包含安装程序文件的位置。

修改 vdproj 文件以使用 Team Foundation Build

  1. 在解决方案资源管理器中右击“HelloWorldTestInstaller”项目,再单击“属性”。在“HelloWorldTestInstaller Property 属性页”对话框中单击“配置管理器”。

    确保 HelloWorldTest 和 HelloWorldTestInstaller 的“生成”框都已被选中。

  2. 单击“关闭”关闭“配置管理器”对话框,再单击“确定”关闭“HelloWorldTestInstaller 属性页”对话框。

  3. 在“文件”菜单上单击“全部保存”保存更改。

  4. 找到 HelloWorldTestInstaller.vdproj 文件。

    在本演练中的位置是“C:\DeploymentProjects\HelloWorldTest\HelloWorldTestInstaller”。文件路径可能会依本地工作区的位置而不同。

  5. 右击“HelloWorldTestInstaller.vdproj”,指向“打开方式”,再单击“选择程序”。在“打开方式”对话框中,从“程序”窗格中选择“记事本”,再单击“确定”以在记事本中打开 HelloWorldTestInstaller。

  6. 确认所有文件路径都相对于 HelloWorldTestInstaller.vdproj 文件的位置列出。

    不应有绝对路径列出。

将 HelloWorldTest 添加并签入到 Team Foundation 源代码管理

  1. 在解决方案资源管理器中右击“HelloWorldTest”解决方案,再单击“将解决方案添加到源代码管理”。

    所有文件旁边都会出现一个黄色加号。它指示这些文件是挂起的源代码管理添加项。

  2. 在解决方案资源管理器中右击“HelloWorldTest”解决方案,再单击“签入”。在“签入 - 源文件 - 工作区: <工作区名称>”对话框中,滚动到所选择的文件。清除“HelloWorldTest.exe”的“名称”框,再单击“签入”。

    现在,这些文件便签入到 Team Foundation 版本控制。

    重要说明:

    应确保取消选中可执行文件,因为您要将 Team Foundation Build 配置为生成新的可执行文件。

修改 TFSBuild.proj 文件

在使用 Team Foundation Build 生成 HelloWorldTestInstaller 项目之前,必须创建新的生成定义,或者使用可修改的现有生成定义。有关更多信息,请参见如何:创建生成定义。必须修改与生成定义关联的 TFSBuild.proj 项目文件,才能指示其生成安装项目。

修改 TFSBuild.proj 文件以生成安装项目

  1. 在“视图”菜单上指向“其他窗口”,然后单击“源代码管理资源管理器”。

  2. 在源代码管理资源管理器中的“文件夹”窗格中展开您的团队项目,然后找到已创建的 TFSBuild.proj 文件。默认位置是 TeamBuildTypes 文件夹,它位于团队项目文件夹下。

  3. 在查看窗格上选择要用于生成 HelloWorldTest 和 HelloWorldTestInstaller 的生成类型。如果本地工作区中不存在该文件的副本,请右击“TeamBuildType”文件夹,再单击“获取最新版本”。

    此操作将可用文件签出以对其进行编辑。

  4. 在查看窗格上双击生成类型,右击 TFSBuild.proj,再单击“签出以进行编辑”。在“签出”对话框上选择“无 - 允许共享的签出”,再单击“签出”。

    一个红色的复选标记会出现在 TFSBuild.proj 文件的旁边,指示其源代码管理状态。

  5. 双击 TFSBuild.proj 文件,在 Visual Studio XML 编辑器中将其打开。

  6. 将下面的代码以粗体形式添加到 TFSBuild.proj 文件的末尾,并置于 </Project> 结束标记之前。

    <Target Name="AfterCompile">     <Exec Command="&quot;$(ProgramFiles)\Microsoft Visual Studio 9.0\Common7\IDE\devenv&quot; &quot;$(SolutionRoot)\HelloWorldTest\HelloWorldTestInstaller\HelloWorldTestInstaller.vdproj&quot; /Build &quot;Debug|Any CPU&quot;"/>     <Copy SourceFiles="$(SolutionRoot)\HelloWorldTest\HelloWorldTestInstaller\Debug\HelloWorldTestInstaller.msi; SolutionRoot)\HelloWorldTest\HelloWorldTestInstaller\Debug\setup.exe" DestinationFolder="$(OutDir)" /> </Target> 
    

    此代码使用 MSBuildexec 任务调用 devenv.exe 程序,进而生成 HelloWorldTestInstaller 安装项目。有关更多信息,请参见 Exec 任务。MSBuildcopy 任务用于将 .msi 和 .exe 文件复制到 Team Foundation Build 输出目录。有关更多信息,请参见 Copy 任务

    当 Team Foundation Build 执行 CoreCompile 目标时,将编译 HelloWorldTest 应用程序。执行完该目标后,将执行 AfterCompile 目标。有关目标名称的更多信息,请参见了解 Team Foundation Build 配置文件

  7. 在“文件”菜单上单击“保存”保存更改,然后关闭 TFSBuild.proj。

  8. 在源代码管理资源管理器中,右击 TFSBuild.proj,再单击“签入挂起的更改”。(可选)可以在“签入 - 源文件 - 工作区: <工作区名称>”对话框中添加注释。单击“签入”将 TFSBuild.proj 签入源代码管理。

运行生成定义

在修改完 TFSBuild.proj 文件并将更改保存到 Team Foundation 版本控制中以后,请运行生成定义生成部署项目。

运行团队生成定义

  1. 在“生成”菜单中单击“使新生成入队”。

  2. 在“将生成‘团队项目名称’排队”对话框中选择要使用的生成定义、生成代理以及队列中的优先级,然后单击“排队”。

    有关更多信息,请参见如何:启动生成定义或对其进行排队

    可以在生成资源管理器中监视生成过程。有关更多信息,请参见如何:监视生成过程

  3. 在生成资源管理器中单击“摘要”标题下的日志文件。检查日志文件中是否有错误。

    说明:

    可以放心地忽略警告 MSB4078: 项目文件“HelloWorldTestInstaller\HelloWorldTestInstaller.vdproj”。该文件由使用 MSBuildExec 任务的 devenv.exe 程序生成。

安装生成的安装文件

  1. 找到生成放置位置“\\<放置位置>\Public_build\HelloWorldTestBuild_<内部版本号>\Release”。

    放置位置是与日志文件位置相同的文件共享,它在生成资源管理器中的“摘要”标题下列出。

  2. 将 HelloWorldTestInstaller.msi 和 setup.exe 文件复制到您是其“Windows Administrator”安全组成员或者您的“安装”权限已设置为“允许”的计算机上。

  3. 双击 setup.exe 文件,然后按照安装向导中的说明进行操作。

    HelloWorldTestInstaller.exe 安装在路径“<根目录>:\Program Files\Microsoft\HelloWorldTestInstaller”下。

  4. 定位到“<根目录>:\Program Files\Microsoft\HelloWorldTestInstaller”。

  5. 双击 .exe 文件以运行该应用程序。

后续步骤

可以修改 Visual Studio 安装项目,以在安装向导中配置额外的步骤。有关更多信息,请参见 Windows Installer 部署概念

请参见

任务

演练:通过自定义任务自定义 Team Foundation Build

其他资源

在 Team Foundation Build 中使用生成定义

使用 Team Foundation Build 管理生成