编程语言
首页 > 编程语言> > c#-发布期间的Azure DevOps XML转换不起作用

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

作者:互联网

我想配置我们的管道,以允许一个构建用于多个环境,而不必创建单独的构建.根据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)在构建期间禁用配置转换,您只需要在Build任务的MSBuild Arguments部分中添加参数/ p:TransformWebConfigEnabled = False即可.如果要在发行期间更新连接字符串,还需要添加/ p:AutoParameterizationWebConfigConnectionStrings = False.这将使用Web.Preview.config来“转换” web.config.

4)在您的发行版中,仔细检查“文件转换和”下的“ IIS Web App部署”任务.您已检查XML转换的变量替换选项.

标签:azure-devops,xml,c
来源: https://codeday.me/bug/20191108/2007521.html