我有 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 方面的问题吗?