0

我有 web.config 文件覆盖设置文件中的项目,如下所示:

<applicationSettings>
    <MvcApplication.Properties.Settings>
      <setting name="FacebookUrlAuth" serializeAs="String">
        <value>http://URL1.com</value>
      </setting>
      <setting name="GoogleUrlAuth" serializeAs="String">
        <value>http://URL2.com</value>
      </setting>
    </MvcApplication.Properties.Settings>
  </applicationSettings>

我有 web.release.config 可以转换这些设置:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <applicationSettings>
    <MvcApplication.Properties.Settings>
      <setting name="FacebookUrlAuth" serializeAs="String" xdt:Locator="Match(name)" xdt:Transform="Replace">
        <value>http://AlternativeUrl1.com</value>
      </setting>
      <setting name="GoogleUrlAuth" serializeAs="String" xdt:Locator="Match(name)" xdt:Transform="Replace">
        <value>http://AlternativeUrl2.com</value>
      </setting>
    </MvcApplication.Properties.Settings>
  </applicationSettings>
</configuration>

当我在发布配置中发布解决方案时,它可以正常工作(我的意思是只有 url 与 web.config 不同)

但是当 Appharbor 发布应用程序时,我使用的页面出现运行时错误@Settings.Default.FacebookUrlAuth

具有以下详细信息:

无法识别的元素“设置”。(D:\websites\45\31968\17022\0x0001_PublishedWebsites\MVC.Web\web.config 第 73 行)

当我评论所有转换规则时,AppHarbor 从我的默认 web.config 中获取这些属性,并且一切正常。这是 AppHarbor 方面的问题吗?

4

1 回答 1

0

不能有多个setting元素。该错误可能与转换无关。

于 2012-11-13T23:34:54.867 回答