2

我在我的应用程序中使用 .settings 文件,有时我需要覆盖 web.config 文件中的设置。

下面是一个被 web.config 覆盖的设置示例:

    <applicationSettings>
        <ADM.Web.Admin.ADMSettings>
            <setting name="ApplicationWebAddress" serializeAs="String">
                <value>http://localhost:8929</value>
            </setting>
        </ADM.Web.Admin.ADMSettings>
    </applicationSettings>

我需要根据我是发布到 Dev 还是 Live 站点来更改此设置所以我这样描述 Web.Debug.config:

        <setting name="ApplicationWebAddress" serializeAs="String" xdt:Transform="Replace" xdt:Locator="Match(name)">
            <value>http://dev.site.com</value>
        </setting>

和 Web.Release.config:

        <setting name="ApplicationWebAddress" serializeAs="String" xdt:Transform="Replace" xdt:Locator="Match(name)">
            <value>http://live.site.com</value>
        </setting>

发布后,我在 Web.Config 文件中发现以下内容:

        <setting name="ApplicationWebAddress" serializeAs="String">
            <value>http://live.site.com
            </value>
        </setting>

如您所见,之前有一条新线。我的问题是为什么会有“新行”以及如何将一个设置值更改为另一个设置值?

4

2 回答 2

3

您是否尝试安装 VS2010 SP1?

检查这一点:Web.config 转换将额外的换行符/空格写入 applicationSettings 部分下的 values 元素

于 2011-12-08T21:46:57.567 回答
0

不确定新行,但另一种解决方案可以在 web.config 中使用自定义 ConfigSection 并将您的 URL 写入属性值

于 2011-12-02T18:30:12.697 回答