将TFS构建与发布管理集成

sar*_*rin 4 visual-studio ms-release-management

如何创建自动运行Microsoft Visual Studio 2013发布管理版本(部署)的TFS Build?

sar*_*rin 8

要从TFS Build中启动发布,您需要更改Build Definition.幸运的是,当您安装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)
Run Code Online (Sandbox Code Playgroud)

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

请确保您使用Release Management Server中的上述模板,而不是我最初使用的客户端目录.如果是这样,您将在构建过程中遇到相当奇怪的错误,例如:

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.)
Run Code Online (Sandbox Code Playgroud)

包裹提取\包裹的路径.

在设置组件时,发布管理需要知道在哪里获取安装文件以便对它们执行某些操作.当您创建发布模板时,它应该通过选择将启动它的构建定义连接到特定构建(也可以勾选"可以从构建中触发发布吗?").在添加要作为发行版的一部分安装的组件时,请指定其源.应选择"使用应用程序构建".得到我的一点是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.
Run Code Online (Sandbox Code Playgroud)

该文件确实存在于该位置,部署代理使用的用户确实可以访问drop目录.我还确认它能够使用ProcMon访问它.睡觉后,我决定将鼠标悬停在输入框上,弹出一个漂亮的工具提示:

绑定到发布模板的组件需要相对于构建放置位置的包路径.如果包直接位于构建放置位置的根目录,则需要输入"\"字符.

因此,在我的eureka时刻之后,我删除了msi文件名并将其替换为"\"并将下一个版本排队.有效.回想起来,我认为他们应该删除对输入内容的强制性要求,以取代输入"\"的需要.它有点隐藏而且不直观.

如何获得包裹

有关详细信息,请参阅MSDN文章

对于修改的构建过程模板

  • 您可能也希望包含此项,以防有人看到此答案,但使用的是修改后的构建流程模板:http://blogs.msdn.com/b/visualstudioalm/archive/2013/12/09/how-to-修改 - 在建造过程模板使用的最期权触发释放从 - build.aspx (2认同)