VS 2010配置转换在部署期间产生不需要的空白区域

时间:2010-07-21 14:17:59

标签: asp.net visual-studio-2010 deployment configuration web-config

我使用新的VS 2010配置转换来部署网站。要替换我的ApplicationSettings的单个设置,我使用以下配置转换:

<setting name="TempPath" serializeAs="String" xdt:Transform="Replace" xdt:Locator="Match(name)">
    <value>C:\TEMP</value>
</setting>

备注: C:\ TEMP和结束标记之间没有空格

此转换会导致设置不需要的空白区域,如下所示:

<setting name="TempPath" serializeAs="String">
    <value>C:\TEMP
    </value>
</setting>

如果我在不修剪的情况下使用此设置,则会出现错误行为。

有什么想法吗?

3 个答案:

答案 0 :(得分:6)

这是VS 2010的known problem。据微软称,它将针对Service Pack和下一版本进行修复。

<强>更新

SP1的最终版本解决了这个问题。不再需要使用删除不需要的换行的解决方法。

答案 1 :(得分:3)

我只想提一下,john.rummell在MS连接问题页面上发布了一个解决方法,它对我来说完美无缺。只需将其添加到您的项目中:

internal sealed partial class Settings
{
    public override object this[string propertyName]
    {
        get
        {
            // trim the value if it's a string
            string value = base[propertyName] as string;
            if (value != null)
            {
                return value.Trim();
            }

            return base[propertyName];
        }
        set { base[propertyName] = value; }
    }
}

答案 2 :(得分:0)

Xml格式化空间。 因为XML标记的内容不关心换行符和空格。 如果你想要字符串值,我强烈建议把它放在属性中,而不是InnerValue

<setting name="TempPath" value="C:\TEMP">
</setting>