gpt4 book ai didi

c# - 发布期间的 Azure DevOps XML 转换不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 02:25:29 26 4
gpt4 key购买 nike

我想配置我们的管道以允许一个构建用于多个环境,而无需创建单独的构建。根据docs ,它似乎是可能的,正如它所说:

  • You can use this technique to create a default package and deploy it to multiple stages.

我将阶段命名为环境(预览),并为该环境 (web.preview.config) 文件创建了一个 web.config 文件。我所有的环境配置文件都在与 Web.Config 文件相同的路径中。

日志显示转换已完成:

2018-11-17T00:26:52.0383966Z [command]D:\a_tasks\AzureRmWebAppDeployment_497d490f-eea7-4f2b-ab94-48d9c1acdcb1\3.4.13\ctt\ctt.exe s: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 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 [command]D:\a_tasks\AzureRmWebAppDeployment_497d490f-eea7-4f2b-ab94-48d9c1acdcb1\3.4.13\ctt\ctt.exe s: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 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 Transformations applied successfully

我可以看到它首先转换为发布,然后按照文档所述应用预览(发布然后是环境)。然而,虽然它说 XML 转换应用成功,但当我检查配置变量时,它们并没有改变。使转换工作的唯一方法是在我对新构建进行排队时定义 buildConfiguration 变量,这会阻止我在不同环境中使用相同的构建。

我在研究的时候,从这个link中找到了这个:

Web.config is transformed during the build process, if you generate the deployment package from "Build" and then deploy it in "Release", then you cannot transform it before deployment.

但是文档说我可以在多个阶段使用一个默认包...这是否仍然意味着我必须为每个环境创建单独的构建? XML 转换不是我想要解决的场景应该考虑的吗?

提前致谢!

++ 编辑:

发布设置: ReleaseSettings

发布步骤(我想?我有一种强烈的感觉,这就是你要找的......): ReleaseSteps

最佳答案

1) 确保转换作品。测试一下 here.

2) 确保在您的 VS 项目中包含转换文件、Web.Preview.config 并复制到输出目录。

3) 在构建期间禁用配置转换,您只需在构建任务的 MSBuild Arguments 部分添加参数/p:TransformWebConfigEnabled=False。如果要在发布期间更新连接字符串,还需要添加/p:AutoParameterizationWebConfigConnectionStrings=False。这将使用 Web.Preview.config 来“转换”web.config。

4) 仔细检查您在文件转换和变量替换选项下的 IIS Web 应用程序部署任务的版本中是否检查了 XML 转换。

关于c# - 发布期间的 Azure DevOps XML 转换不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53643303/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com