【发布时间】:2018-12-06 01:28:39
【问题描述】:
我想配置我们的管道以允许一个构建用于多个环境,而无需创建单独的构建。根据docs 的说法,这似乎是可能的,正如它所说:
- 您可以使用此技术创建默认包并将其部署到多个阶段。
我将我的舞台命名为我的环境(预览版),并为该环境(web.preview.config)文件创建了一个 web.config 文件。我所有的环境配置文件都在与 Web.Config 文件相同的路径中。
日志说转换已完成:
2018-11-17T00:26:52.0383966Z [命令]D:\a_tasks\AzureRmWebAppDeployment_497d490f-eea7-4f2b-ab94-48d9c1acdcb1\3.4.13\ctt\ctt.exe s:D:\a_temp\temp_web_package_06284891598\48 \D_C\a\1\s\Microsoft.Xbox.Mvp\Microsoft.Xbox.Mvp.Api\obj\Preview\Package\PackageTmp\bin\Web.config t:D:\a_temp\temp_web_package_06958915987488234\Content\D_C\a \1\s\Microsoft.Xbox.Mvp\Microsoft.Xbox.Mvp.Api\obj\Preview\Package\PackageTmp\bin\Web.Release.config d:D:\a_temp\temp_web_package_06958915987488234\Content\D_C\a\1 \s\Microsoft.Xbox.Mvp\Microsoft.Xbox.Mvp.Api\obj\Preview\Package\PackageTmp\bin\Web.config pw i 2018-11-17T00:26:52.4335280Z [命令]D:\a_tasks\AzureRmWebAppDeployment_497d490f-eea7-4f2b-ab94-48d9c1acdcb1\3.4.13\ctt\ctt.exe s:D:\a_temp\temp_web_package_06954\AzureRmWebAppDeployment_497d490f-eea7-4f2b-ab94-48d9c1acdcb1\3.4.13\ctt\ctt.exe s:D:\a_temp\temp_web_package_06954891598C\74\ContentD2 a\1\s\Microsoft.Xbox.Mvp\Microsoft.Xbox.Mvp.Api\obj\Preview\Package\PackageTmp\bin\Web.config t:D:\a_temp\temp_web_package_06958915987488234\Content\D_C\a\1\ s\Microsoft.Xbox.Mvp\Microsoft.Xbox.Mvp.Api\obj\Preview\Package\PackageTmp\bin\Web.Preview.config d:D:\a_temp\temp_web_package_06958915987488234\Content\D_C\a\1\s\ Microsoft.Xbox.Mvp\Microsoft.Xbox.Mvp.Api\obj\Preview\Package\PackageTmp\bin\Web.config pw i 2018-11-17T00:26:52.5443873Z XML 转换成功应用
我可以看到它首先转换为发布,然后按照文档所述应用预览(发布然后环境)。但是,虽然它说 XML 转换已成功应用,但当我检查配置变量时,它们并没有改变。我可以使转换工作的唯一方法是在我对新构建进行排队时定义 buildConfiguration 变量,这会阻止我在不同的环境中使用相同的构建。
我在研究的时候,从这个link发现了这个:
Web.config在构建过程中被转换,如果你从“Build”生成部署包,然后在“Release”中部署,那么在部署之前不能转换。
但是文档说我可以在多个阶段使用一个默认包...这是否仍然意味着我必须为每个环境创建单独的构建?对于我想要解决的场景,我不应该考虑 XML 转换吗?
提前谢谢你!
++ 编辑:
发布设置:
发布步骤(我认为?我有一种强烈的感觉,这就是您正在寻找的......):
【问题讨论】:
-
你如何检查你的配置变量?
-
在 Azure 应用服务上,我可以从远程执行控制台查看当前变量。
-
您描述的场景应该可以工作。基本上,您将基础 web.config 和所有 web.{stage}.config 文件从构建中包含到您的工件中,然后在发布期间应用转换。你能检查一下你的人工制品里面有什么,并可能包括你的发布步骤和设置的屏幕截图吗?
-
@JleruOHeP 我只是查看了我们的工件,但除了 setParameters.xml 之外,我没有看到任何与转换相关的东西,我什么也没做。我不确定我是否应该看到其他东西或者这是正确的。我可以附上我们发布步骤和设置的屏幕截图。谢谢!
-
图像看起来不错,在您的人工制品(您的 .zip 文件)中应该至少有 3 个 xml:Web.config、Web.Release.config、Web.Preview.config。您能确认所有这些设置都正确吗?
标签: c# xml azure-devops azure-pipelines