【发布时间】:2017-12-11 17:06:42
【问题描述】:
我正在为 Web 应用程序设置持续部署,但在进行配置转换时遇到了问题。构建和发布都无需配置转换即可工作,但我想添加一个配置转换步骤以确保 Web 配置中包含正确的连接字符串、存储帐户等。
我在 VSTS 中使用配置转换任务。在构建过程中构建的工件是一个 zip 文件。然后我提取这些文件,它提供了一个非常深的文件结构。如果我对文件结构进行硬编码,配置转换就可以工作,但我担心这可能会改变,所以我想概括一下。如果我执行 $(mypath)/**/Web.config 它不会出错并且日志显示它正在执行转换,但是一旦完成,我会查看 Azure 中的文件并且可以看到转换实际上并不是完成或保存。
对此我的要求是我不能使用 xslt 转换或 XML 转换 (web.environment.config),因为我们希望将重要的值排除在源代码控制和 VSTS 之外。我们还在 NLog.config 上进行配置转换,这些转换以相同的方式设置并看到相同的问题。任何有关获得这种更通用的工作路径或解决此问题的不同方法的帮助将不胜感激。
其他可能有用的信息:
构建解决方案步骤中的 MSBuild 参数:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"
路径结构 $(My.Paths.InstallDirectory)\Content\d_C\a\1\s\Apps\ProjectName\ProjectName\obj\Release\Package\PackageTmp\Web.config
【问题讨论】:
-
您使用的是哪个配置转换任务?那是扩展名吗?
-
@jessehouwing Sergey Zwezdin 的配置转换
标签: azure-devops azure-pipelines-release-pipeline