VSTS发布管理转换web.config

时间:2016-09-06 11:02:30

标签: visual-studio azure azure-pipelines azure-pipelines-release-pipeline

我正在使用新的VSTS版本管理将我的网站部署到Azure Web应用程序。我想要的只是为QA环境转换一个连接字符串。我发现很难得到答案。任何帮助深表感谢。

我不想在我的Web配置文件中创建令牌,因为我想在我的本地环境中使用配置文件。

3 个答案:

答案 0 :(得分:1)

从安全角度来看,在源代码控制上存储连接字符串(本地开发代码除外)远非最佳实践。
构建/发布管理系统允许您拥有可在流程中重用的秘密变量和/或服务端点 但是,您应该在构建步骤(MSBuild参数)中查看发布换向器,它将要求visual studio执行发布并应用配置转换文件和发布配置文件的转换。
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.stagingDirectory)"

答案 1 :(得分:1)

您还可以使用包含connectionstring的VSTS变量作为Azure WebApp的连接字符串进行部署。

这看起来像是我的开源VSTS任务的无耻插件。但对于您的问题,这是一个简洁明了的解决方案。我的任务可用于部署在VSTS中配置为变量的appsettings和connectionstrings,以部署到Azure webapp。无需更改web.config。

查看市场,将其安装在VSTS和文档中:https://marketplace.visualstudio.com/items?itemName=pascalnaber.PascalNaber-Xpirit-WebAppConfiguration

答案 2 :(得分:1)

这是我在构建定义的Visual Studio Build任务中的MSBuild参数中添加的内容,它的工作原理很简单:

/p:DeployOnBuild=True;PublishProfile="$(BuildConfiguration)" /p:publishUrl="$(Build.ArtifactStagingDirectory)" /p:DeleteExistingFiles=True /p:WebPublishMethod=FileSystem /p:DeployDefaultTarget=WebPublish

请注意,我将BuildConfiguration作为变量,例如对应于UATReleaseDev。 PublishProfile对应于您在项目/解决方案中设置的Publish Profile。 (因此,如果将发布配置文件命名为“ Hey-Go-To-Dev”,则将“ Hey-Go-To-Dev”放在BuildConfiguration中(或可以设置的新变量)。

无论如何:这将执行您的发布配置文件并在您的web.config文件中进行任何相关的转换。

神速。