Ori*_*lBG 6 web-config msdeploy visual-studio web-config-transform azure-devops
我正在使用 VSTS 在多个环境中进行部署。和往常一样,配置文件上的一些参数需要根据环境而不同,因此我将使用配置转换将其部署到目标环境中。
由于我想要包含稍后应用的配置和转换的包,因此我将构建操作设置为内容:
<Content Include="App_Config\MyConfig.config" />
<Compile Include="App_Config\MyConfig.prod.config">
<DependentUpon>MyConfig.config</DependentUpon>
</Compile>
<Compile Include="App_Config\MyConfig.uat.config">
<DependentUpon>MyConfig.config</DependentUpon>
</Compile>
<Compile Include="App_Config\MyConfig.dev.config">
<DependentUpon>MyConfig.config</DependentUpon>
</Compile>
Run Code Online (Sandbox Code Playgroud)
包正确完成,部署也是如此(MyConfig.config 已根据其运行的环境更改参数)。我的问题是在服务器机器上我也有 MyConfig.*.config 文件。
查看官方文档示例说明(https://docs.microsoft.com/en-us/vsts/pipelines/tasks/transforms-variable-substitution?view=vsts#xml-transformation-example)没有给出任何明确的信息. 这只是“msbuild 会在打包之前完成,而 azure 不会”,但并没有解释如何做到这一点。
编辑:我使用的解决方案。
基本上我无法避免保持工件清洁,因为它们不依赖于环境。因此,在所有发布管道之后,我添加了一个删除文件作业(https://docs.microsoft.com/en-us/vsts/pipelines/tasks/utility/delete-files?view=vsts)以使用以下内容删除所有配置文件参数:
源文件夹: $(wwwRoot)\ 内容: **\*.Debug.config **\*.Release.config **\*.UAT.config **\*.PROD.config
首先,对于XML文件转换,需要xx..config文件。其次,当将 Web 应用程序发布到 Web 部署包或根据配置(例如发布、调试)直接发布到服务器时,将应用转换。
对于Web部署包,有xx.SetParameters.xml文件,其中包含相关转换的元素,并且该值将在部署期间应用。您可以在部署之前更新该文件。
使用 Visual Studio 进行 Web 项目部署的 Web.config 转换语法
更新:
您还可以将文件存储在Secure Files中,然后通过复制文件任务将文件复制到相关文件夹:
$(agent.builddirectory)\..\_temp
:) 归档时间: |
|
查看次数: |
1162 次 |
最近记录: |