从 VSTS Release Management 将 WebSite 构建部署到 Azure
Deploying WebSite builds to Azure from VSTS Release Management
我正在为 Visual Studio Team Services 新发布管理系统的预览而努力。我的场景是一个经典网站 (ASP.NET 4.5),其中有一个 Git 存储库托管在 VSTS 中。构建定义成功,如下所示:
它被设置为发布为可以由 Release Manager 获取的工件,如下所示:
在 Release Manager 方面,我已正确 link 编辑了该工件,如下所示:
在这里你可以看到我的环境以及相关的任务(所有 3 个都是克隆)
当我 运行 版本发布正常时,它连接到我的订阅但是当它试图找到包文件时它在输出日志的第 101 行出现以下错误:
"No files were found to deploy with the search pattern 'C:\afe43dd1a***.zip'"
这是完整的输出:
这就是我卡住的地方,因为我假设我的工件 link 通过 VSTS 应该为我解决这条路径。显然我在某处遗漏了一个重要的难题,但我已尽我所能遵循可用的文档。
如果有人有解决方案或能指出正确的方向,我们将不胜感激!
--- 编辑 ---
我使用文件选择器 select 网络部署包(见下文)。我尝试使用根网站和 bin 文件夹。两次尝试都会导致错误说明:"No files were found to deploy with search pattern 'C:\afe43dd1a\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
并且在我的 Copy/Publish 工件任务中,我将输出限制为仅复制 .zip 文件。现在,在我的 RELEASE 过程中,当我导航查找 "Web Deploy Package" 时,"drop" 文件夹是空的。这是屏幕截图:
我认为我在正确的道路上,我只需要帮助来调整我的 BUILD 任务以生成正确的工件供我的 RELEASE 过程使用。任何帮助将不胜感激。
将 $(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
部署包未复制到工件文件夹。这就是发布管理找不到包的原因。将 "Copy and Publish Build Artifacts" 设置为以下应该可以解决您的问题:
我正在为 Visual Studio Team Services 新发布管理系统的预览而努力。我的场景是一个经典网站 (ASP.NET 4.5),其中有一个 Git 存储库托管在 VSTS 中。构建定义成功,如下所示:
它被设置为发布为可以由 Release Manager 获取的工件,如下所示:
在 Release Manager 方面,我已正确 link 编辑了该工件,如下所示:
在这里你可以看到我的环境以及相关的任务(所有 3 个都是克隆)
当我 运行 版本发布正常时,它连接到我的订阅但是当它试图找到包文件时它在输出日志的第 101 行出现以下错误:
"No files were found to deploy with the search pattern 'C:\afe43dd1a***.zip'"
这是完整的输出:
这就是我卡住的地方,因为我假设我的工件 link 通过 VSTS 应该为我解决这条路径。显然我在某处遗漏了一个重要的难题,但我已尽我所能遵循可用的文档。
如果有人有解决方案或能指出正确的方向,我们将不胜感激!
--- 编辑 ---
我使用文件选择器 select 网络部署包(见下文)。我尝试使用根网站和 bin 文件夹。两次尝试都会导致错误说明:"No files were found to deploy with search pattern 'C:\afe43dd1a\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
并且在我的 Copy/Publish 工件任务中,我将输出限制为仅复制 .zip 文件。现在,在我的 RELEASE 过程中,当我导航查找 "Web Deploy Package" 时,"drop" 文件夹是空的。这是屏幕截图:
我认为我在正确的道路上,我只需要帮助来调整我的 BUILD 任务以生成正确的工件供我的 RELEASE 过程使用。任何帮助将不胜感激。
将 $(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
部署包未复制到工件文件夹。这就是发布管理找不到包的原因。将 "Copy and Publish Build Artifacts" 设置为以下应该可以解决您的问题: