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:\ website \ 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 に答える