我在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网站定义\ drop \ ClassicWebsite \ bin'&#34 ;
---编辑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"文件夹是空的。这是一个截图:
我认为我正走在正确的道路上,我只需要帮助找出调整我的BUILD任务,为我的RELEASE进程生成正确的工件。任何帮助将不胜感激。
答案 0 :(得分:23)
答案 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