我正在为Visual Studio Team Services新版本管理系统的预览做准备.我的场景是一个经典的网站(ASP.NET 4.5),在VSTS中托管了一个Git repo.构建定义是成功的,如下所示:
它被设置为发布为可由Release Manager拾取的工件,如下所示:
在发布管理器端,我将该工件正确链接,如下所示:
在这里,您可以看到我的环境以及相关的任务(所有3个都是克隆)
当我运行发布时,构建发布很好,它连接到我的订阅但是当它试图找到包文件时,它在输出日志的第101行上有以下错误:
"没有找到使用搜索模式'C:\ a\4fe43dd1a***.zip'部署的文件"
这是完整的输出:
这是我卡住的地方,因为我假设通过VSTS的工件链接应该为我解决此路径.显然我在某个地方错过了一个重要的难题,但我尽可能地遵循了可用的文档.
如果有人有解决方案或能指出我正确的方向,我将不胜感激!
---编辑---
我使用文件选择器来选择Web部署包(见下文).我尝试使用root网站以及bin文件夹.两次尝试都会导致错误,指出:"没有找到使用搜索模式部署的文件'C:\ a\4fe43dd1a\Classic Website Definition\drop\ClassicWebsite\bin'"
---编辑2 ---
我使用以下MSBuildArguments向我的BUILD进程添加了一个MSBuild任务
/p:OutDir=$(build.stagingDirectory) /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true
在我的复制/发布工件任务中,我将输出限制为仅复制.zip文件.现在在我的RELEASE过程中,当我导航找到"Web部署包"时,"drop"文件夹为空.这是一个截图:
我想我正走在正确的道路上,我只需要帮助搞清楚我的BUILD任务,以便为我的RELEASE进程生成正确的工件.任何帮助,将不胜感激.
部署包不会复制到artifacts文件夹.这就是发布管理无法找到包的原因.将"复制和发布构建工件"设置为以下内容可以解决您的问题:
更改$(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