微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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转换的变量替换选项.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。