次のように設定ファイルの項目を上書きする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側の問題ですか?