从VSTS版本管理部署WebSite构建到Azure

时间:2015-12-03 00:38:57

标签: ms-release-management azure-devops

我在Visual Studio Team Services新版本管理系统的预览中踢了轮胎。我的场景是一个经典的网站(ASP.NET 4.5),在VSTS中托管了一个Git repo。构建定义是成功的,如下所示:

enter image description here

它被设置为发布为可由Release Manager拾取的工件,如下所示:

enter image description here

在发布管理器端,我将该工件正确链接,如下所示:

enter image description here

在这里,您可以看到我的环境以及相关的任务(所有3个都是克隆)

enter image description here

当我运行发布时,构建发布很好,它连接到我的订阅但是当它试图找到包文件时,它在输出日志的第101行上有以下错误:

"未找到使用搜索模式部署的文件' C:\ a \ 4fe43dd1a ***。zip'"

以下是完整输出:

enter image description here

这是我被卡住的地方,因为我认为通过VSTS的工件链接应该为我解决此路径。显然我在某个地方错过了一个重要的难题,但是我尽可能地遵循了可用的文档。

如果有人有解决方案或能指出我正确的方向,我们将不胜感激!

---编辑---

我使用文件选择器来选择Web部署包(见下文)。我尝试使用root网站以及bin文件夹。两次尝试都会导致错误说明:"没有找到使用搜索模式部署的文件&C; \ a \ 4fe43dd1a \ Classic网站定义\ drop \ ClassicWebsite \ bin'&#34 ;

enter image description here

---编辑2 ---

我使用以下MSBuildArguments

向我的BUILD进程添加了一个MSBuild任务

/p:OutDir=$(build.stagingDirectory) /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true

在我的Copy / Publish Artifacts任务中,我将输出限制为仅复制.zip文件。现在,在我的RELEASE过程中,当我导航找到一个" Web部署包" " drop"文件夹是空的。这是一个截图:

enter image description here

我认为我正走在正确的道路上,我只需要帮助找出调整我的BUILD任务,为我的RELEASE进程生成正确的工件。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:23)

部署包未复制到artifacts文件夹。这就是发布管理无法找到包的原因。设置"复制和发布构建工件"以下应该解决你的问题: VSTS Copy and Publish Artifacts drop build step

答案 1 :(得分:5)

$(System.DefaultWorkingDirectory)更改为$(Agent.ReleaseDirectory)。工件将放在该文件夹中。我不确切地知道$(System.DefaultWorkingDirectory)映射的是什么,但我的印象是,它不在代理程序用于发布的文件夹之外。

还要确保发布的工件包含预期的zip文件 - 如果未创建部署包,或者如果您没有发布包含该包的输出文件夹,显然您将无法稍后发布。

构建Web应用程序时,请确保使用包装它的MSBuild参数进行部署打包。这样的事情应该有效:

/p:OutDir=$(build.stagingDirectory) /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true