У меня есть файл 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?