【问题标题】:Integrate a TFS Build with Release Management将 TFS 构建与发布管理集成
【发布时间】:2024-04-25 04:15:01
【问题描述】:

如何从 Microsoft 的 Visual Studio 2013 发布管理中创建自动运行发布(部署)的 TFS 构建?

【问题讨论】:

    标签: visual-studio ms-release-management


    【解决方案1】:

    为了从 TFS 构建开始发布,您需要更改构建定义。幸运的是,当您安装 Release Management 时,它会创建一个构建模板供您与示例一起使用。在某些情况下,这足以让您继续前进。

    发布管理构建过程模板

    默认情况下,版本管理构建过程模板未安装在 TFS 中,因此在您添加之前它不会显示为可用的构建过程模板。

    在您的服务器安装中找到模板:C:\Program Files (x86)\Microsoft Visual Studio 12.0\ReleaseManagement\bin\

    TFS 2010 : ReleaseDefaultTemplate.xaml
    TFS 2012 : ReleaseDefaultTemplate.11.1.xaml
    TFS 2013 : ReleaseTfvcTemplate.12.xaml (or ReleaseGitTemplate.12.xaml if using GIT)
    

    要添加发布管理构建过程模板,您需要将其签入到项目中 BuildProcessTemplate 文件夹中的 TFS 源代码控制中。然后在编辑(或添加)构建定义时添加构建过程文件。将发布管理模板添加到构建模板列表后,您就可以开始使用它了。

    请确保您使用来自发布管理服务器的上述模板,而不是像我最初那样使用客户端目录。如果是这样,您将在构建过程中遇到相当奇怪的错误,例如:

    C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets (3883): Web deployment task failed. (Unknown ProviderOption:DefiningProjectFullPath. Known ProviderOptions are:skipInvalid.)
    

    取件\包裹路径。

    当您设置组件时,Release Management 需要知道从哪里获取安装文件以对它们进行处理。当您创建发布模板时,它应该通过选择将启动它的构建定义连接到特定构建(也勾选“可以从构建中触发发布?”)。当您添加要安装的组件作为您的发行版的一部分时,您指定它们的源。应选择“使用应用程序构建”。吸引我的一点是 Build Drop 位置旁边的大空框,这是一个必填字段。我最初的反应是用我尝试部署的 msi 文件的名称填充它。这是有道理的吧?错误的。如果我从 Visual Studio 排队构建,我会不断收到以下消息。

    Package location '\\blah\blah\Build Name\Build Name_20140707.3\A.Product.To.Install.msi' does not exists or Deployer user does not have access.
    

    该文件确实存在于该位置,并且部署代理使用的用户确实有权访问放置目录。我还确认它可以使用 ProcMon 访问它。睡了之后,我决定将鼠标悬停在输入框上,然后弹出一个漂亮的工具提示:

    相对于构建放置位置的包路径是必需的 绑定到发布模板的组件。如果包裹直接在 构建放置位置的根目录,您需要输入'\' 字符。

    因此,在我的 eureka 时刻之后,我删除了 msi 文件名并将其替换为“\”并将下一个构建排队。有效。回想起来,我认为他们应该取消强制要求输入某些内容来代替输入“\”的需要。它有点隐蔽,不直观。

    See MSDN Article here for more info

    For Modified Build Process Templates

    【讨论】: