Web.Config 发布后未应用转换

Web.Config transformation not applied after publish

我发现了一些类似的问题,但 none 似乎对我有所帮助。

我的 web.config 中有以下内容:

<appSettings configSource=".\ConfigDEV\AppSettings.xml" />
  <connectionStrings configSource=".\ConfigDEV\ConnectionStrings.xml" />
  <applicationSettings>
    <StarLight.Properties.Settings configSource=".\ConfigDEV\TaxonomySettings.xml" />
    <Stikeman.MatterDB.Library.Properties.Settings configSource=".\ConfigDEV\MatterDBSettings.xml" />
  </applicationSettings>

我的 Web.Release.config 中有以下内容:

<appSettings configSource="__AppSettingsPath__" xdt:Transform="Replace" xdt:Locator="Match(configSource)" />
  <connectionStrings configSource="__ConnectionStringsPath__" xdt:Transform="Replace" xdt:Locator="Match(configSource)" />
  <applicationSettings>
    <StarLight.Properties.Settings configSource="__TaxonomySettingsPath__" xdt:Transform="Replace" xdt:Locator="Match(configSource)" />
    <Stikeman.MatterDB.Library.Properties.Settings configSource="__MatterDBSettingsPath__" xdt:Transform="Replace" xdt:Locator="Match(configSource)" />
  </applicationSettings>

如果我在 VS2015 中发布解决方案(使用 Publish 命令),web.config 不会被转换并且原始 configSource 值仍然存在。

我在这里错过了什么?

感谢任何帮助。

谢谢, KS

为了替换 configSource,您应该删除 xdt:Locator。您可以通过右键单击 .\ConfigDEV\AppSettings.xml 文件并选择预览转换来进行测试。

<appSettings configSource="__AppSettingsPath__" xdt:Transform="Replace"  />
  <connectionStrings configSource="__ConnectionStringsPath__" xdt:Transform="Replace"  />
  <applicationSettings>
    <StarLight.Properties.Settings configSource="__TaxonomySettingsPath__" xdt:Transform="Replace"  />
    <Stikeman.MatterDB.Library.Properties.Settings configSource="__MatterDBSettingsPath__" xdt:Transform="Replace"  />
  </applicationSettings>

我遇到了同样的问题,必须删除定位器才能获得替代品。