在azure devops管道中,我尝试运行appcmd命令来修改appcmd文件以设置api.hostname.net变量它的工作方式如下:appcmd set config -section:system.applicationHost/applicationPools /+"name='api.hostname.net'.environmentVariables.name='ASPNETCORE_ENVIRONMENT',applicationhost.config =‘ASPNETCORE_ENVIRONMENT’“
问题是这个appcmd命令第一次可以工作,但是一旦环境变量已经存在,它就会抛出一条错误消息。我可以忽略appcmd中的错误吗?或者只添加以前不存在的环境变量?
我正在使用azure devops IISWebAppManagementOnMachineGroup@0任务运行appcmd命令。
发布于 2020-06-17 14:54:55
您可以尝试在IIS web部署任务中使用XML transformation选项。XML转换支持转换配置文件(*.config文件),并基于将部署web包的环境。

转换文件示例:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<aspNetCore ...>
<environmentVariables>
<environmentVariable xdt:Transform="Replace" xdt:Locator="Match(name)" name="ASPNETCORE_ENVIRONMENT" value="xxx" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</configuration>有关详细信息,请参阅此document。
发布于 2021-08-27 09:04:02
我有类似的需求,并且我必须脚本化这些命令,所以任何基于UI的方法都不适用于我。在这里提供我的解决方案。
我想要更新位于appSettings部分的名为PasswordChangeEnabled的已有密钥。
<appSettings>
<add key="PasswordChangeEnabled" value="false" />
</appSettings>如果我将set config与加号/+一起使用
appcmd set config "Site" /section:appSettings /+"[key='PasswordChangeEnabled',value='true']"我将收到一条错误消息:
键错误(无法添加类型为“”add“”且唯一键属性“”
“”设置为“”PasswordChangeEnabled“”的重复集合条目)“”
因此,我更改了语法,只修改了值:
appcmd set config "Site" /section:appSettings /"[key='PasswordChangeEnabled'].value:true"这种方式对我很有效。
https://stackoverflow.com/questions/62416255
复制相似问题