我使用新的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>
如果我在不修剪的情况下使用此设置,则会出现错误行为。
有什么想法吗?
答案 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>