VSTS 发布管理转换 web.config

VSTS release management transform web.config

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

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

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

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

这看起来像是我的开源 VSTS 任务的无耻插件。但它是解决您的问题的简单明了的解决方案。我的任务可用于部署在 VSTS 中配置为变量的应用程序设置和连接字符串,以部署到 Azure webapp。不改变 web.config.

在 marketplace 中查看以将其安装在 VSTS 中并获取文档:https://marketplace.visualstudio.com/items?itemName=pascalnaber.PascalNaber-Xpirit-WebAppConfiguration

这是我在 Visual Studio 构建任务的 MSBuild 参数中针对我的构建定义添加的内容,它工作得非常出色:

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

请注意,我将 BuildConfiguration 作为变量,例如对应于 UATReleaseDev。 PublishProfile 对应于您在 project/solution 中设置的发布配置文件。 (因此,如果您将发布配置文件命名为 "Hey-Go-To-Dev",那么您会将 "Hey-Go-To-Dev" 放入 BuildConfiguration(或您可以设置的新变量)中。

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

祝你好运。