我创建了一个名为 Local 的配置,并希望对我的web.local.config
进行以下转换:
1。连接字符串
我的web.config
具有以下连接字符串:
<connectionStrings>
<add name="Entities"
connectionString = "dummy"
providerName="System.Data.EntityClient" />
</connectionStrings>
不过,我希望我的web.local.config
具备以下条件:
<connectionStrings>
<add name="Entities"
connectionString="What a nice connection string!"
providerName="System.Data.EntityClient" />
</connectionStrings>
我目前已这样设置转换:
<connectionStrings>
<add name="Entities"
connectionString="What a nice connection string!"
xdt:Transform="SetAttributes"
xdt:Locator="Match(name)"/>
</connectionStrings>
我还尝试了如下的Replace
转换,但这也不起作用:
<connectionStrings>
<add name="Entities"
connectionString="What a nice connection string!"
xdt:Transform="Replace"
xdt:Locator="Match(name)"/>
</connectionStrings>
但是当我的DbContext
对象尝试使用我的连接字符串初始化自身时,仍然在Entity Framework中出现格式异常。
2。应用设置
我的web.config
具有以下应用设置:
<appSettings>
<add key="Nice" value="true" />
<add key="NotNice" value="true" />
<!-- I want only this one's value to change in my web.local.config -->
<add key="foo" value ="I am a foo." />
</appSettings>
我想改变该应用设置,其关键是只值foo
,使我的appSettings
在我的web.local.config
如下所示:
<appSettings>
<add key="Nice" value="true" />
<add key="NotNice" value="true" />
<!-- I want only this one's value to change in my web.local.config -->
<add key="foo" value ="Are you also a foo?" />
</appSettings>
我当前应用的转换看起来像这样:
<appSettings>
<add key="foo" value = "Are you also a foo?"
xdt:Transform="SetAttributes(value)"
xdt:Locator="Match(key)"/>
</appSettings>
我还尝试了如下的Replace
转换,但这也不起作用:
<appSettings>
<add key="foo" value = "Are you also a foo?"
xdt:Transform="Replace"
xdt:Locator="Match(key)"/>
</appSettings>
但是,当我在调试模式下运行 Local 配置时,从foo
中读取密钥appSettings
时,代码仍会读取旧值"I am a foo."
我在做什么错了?