我搞不清楚了。我有一个带有配置文件和几个参数的 Web 项目,这些参数需要根据目标环境进行不同的设置。我有一个应用程序设置和一个连接字符串。这些DEFINE
值需要被替换。
网络配置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="HostUri" value="DEFINE"/>
...
</appSettings>
<connectionStrings>
<add name="DbConn" connectionString="DEFINE" providerName="System.Data.SqlClient"/>
</connectionStrings>
...
</configuration>
我有一个 Azure App Service Deploy 任务稍后在部署期间使用的参数规范。在这里,我指定了要替换的两个值。
参数.xml:
<parameters>
<parameter name="HostUri" defaultValue="Replace me!">
<parameterEntry kind="XmlFile" scope="Web.config"
match="/configuration/appSettings/add[@key='HostUri']/@value" />
</parameter>
<parameter name="DbConn" defaultValue="Replace me!">
<parameterEntry kind="XmlFile" scope="Web.config"
match="/configuration/connectionStrings/add[@name='DbConn']/@connectionString" />
</parameter>
</parameters>
HostUri
正确替换应用程序设置后,连接字符串DbConn
保持不变。我什至没有设置默认值。它保持DEFINE
原来在 Web.config 中设置的值。
我的直觉告诉我我的 XPath/configuration/connectionStrings/add[@name='DbConn']/@connectionString
不正确,但我觉得它看起来不错,并且遵循其他帖子所做的事情,例如Cobus Bernard。
任何帮助是极大的赞赏。