为每个发布环境的 Azure 网站部署转换 web.config
Transform web.config for Azure Website Deployment for each release environment
在 Visual Studio Team Services(在线 Visual Studio)中,我有三个发布环境,每个环境都有一个 Azure 网站部署步骤。
我可以通过指定获取 Web.Uat.config.
的 "BuildConfiguration" 变量(例如 Uat)来转换构建步骤的 web.config
但是我有多个使用此构建配置的发布环境,它们都需要转换 Web 配置(例如 Dev、Test、Uat、Live)。
是否可以在 Azure 网站部署步骤之前指定用于每个发布环境的 Web 配置转换?
注意:我知道可以在 "All Settings" 下的 Azure 门户中为网站指定简单的应用程序设置和连接字符串,但我需要做的不仅仅是转换这些简单的设置,而且我已经配置了 Web 配置转换对于我的解决方案中的每个环境
Web.config是在构建过程中转换的,如果你从"Build"生成部署包,然后在"Release"中部署,那么你不能在部署前转换它。
您可以使用 Web Deploy Parameterization to update the values in web.config before deployment. More information for your reference: Web Deploy Parameterization vs Web.config Transform.
您也可以在部署前使用Replace Tokens任务替换web.config文件中的值。
作为 Release Management Utility Tasks 一部分的分词器任务允许根据环境转换配置文件。
可以使用包含所有环境的所有配置的单个 JSON 配置文件,任务将根据环境自动选择正确的配置。
{
"<environment>": {
"CustomVariables": {
"Variable1": "value1",
"Variable2": "value2",
},
"ConfigChanges": [
{
"KeyName": "/configuration/appSettings/add[@key='ServiceURL']",
"Attribute":"value",
"Value":"https://ServiceURL"
},
{
"KeyName": "/configuration/appSettings/add[@key='EnableDebugging']",
"Attribute":"value",
"Value":"false"
},
{
"KeyName":“/configuration/connectionStrings/add[@name='databaseentities']”,
"Attribute": "connectionString",
"value": "Integrated Security=True;Persist Security Info=False;Initial Catalog=DB;Data Source=servername"
}
]
}
像这样,您可以在一个 JSON 文件中拥有多个环境及其配置,并且分词器任务将根据正在进行部署的环境修改您的配置。
阅读上面的详细信息 link 以了解更多信息。
在 Visual Studio Team Services(在线 Visual Studio)中,我有三个发布环境,每个环境都有一个 Azure 网站部署步骤。
我可以通过指定获取 Web.Uat.config.
的 "BuildConfiguration" 变量(例如 Uat)来转换构建步骤的 web.config但是我有多个使用此构建配置的发布环境,它们都需要转换 Web 配置(例如 Dev、Test、Uat、Live)。
是否可以在 Azure 网站部署步骤之前指定用于每个发布环境的 Web 配置转换?
注意:我知道可以在 "All Settings" 下的 Azure 门户中为网站指定简单的应用程序设置和连接字符串,但我需要做的不仅仅是转换这些简单的设置,而且我已经配置了 Web 配置转换对于我的解决方案中的每个环境
Web.config是在构建过程中转换的,如果你从"Build"生成部署包,然后在"Release"中部署,那么你不能在部署前转换它。
您可以使用 Web Deploy Parameterization to update the values in web.config before deployment. More information for your reference: Web Deploy Parameterization vs Web.config Transform.
您也可以在部署前使用Replace Tokens任务替换web.config文件中的值。
作为 Release Management Utility Tasks 一部分的分词器任务允许根据环境转换配置文件。
可以使用包含所有环境的所有配置的单个 JSON 配置文件,任务将根据环境自动选择正确的配置。
{
"<environment>": {
"CustomVariables": {
"Variable1": "value1",
"Variable2": "value2",
},
"ConfigChanges": [
{
"KeyName": "/configuration/appSettings/add[@key='ServiceURL']",
"Attribute":"value",
"Value":"https://ServiceURL"
},
{
"KeyName": "/configuration/appSettings/add[@key='EnableDebugging']",
"Attribute":"value",
"Value":"false"
},
{
"KeyName":“/configuration/connectionStrings/add[@name='databaseentities']”,
"Attribute": "connectionString",
"value": "Integrated Security=True;Persist Security Info=False;Initial Catalog=DB;Data Source=servername"
}
]
}
像这样,您可以在一个 JSON 文件中拥有多个环境及其配置,并且分词器任务将根据正在进行部署的环境修改您的配置。
阅读上面的详细信息 link 以了解更多信息。