【问题标题】:Transform user settings with slowCheetah使用 slowCheetah 转换用户设置
【发布时间】:2012-12-28 16:36:35
【问题描述】:

我正在尝试根据使用 slowCheetah 的构建配置文件更改我的默认用户配置,但是我无法找到正确的使用方法

<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="MyApp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <userSettings>
        <MyApp.Properties.Settings>
            <setting name="Url" serializeAs="String">
                <value>
                    something
                </value>
            </setting>
        </MyApp.Properties.Settings>
    </userSettings>
</configuration>

我一直在努力

<!-- &amp it's an & escaped in xml-->
<add key="MyApp.Properties.Settings.Url" value="www.google.com" xdt:Transform="Replace" xdt:Locator="Match(key)"/>

但它不起作用。

我该怎么做?

【问题讨论】:

  • 你想做什么?您想在&lt;MyApp.Properties.Settings&gt; 中添加一行吗?
  • 我想用默认值替换一个值,以生成正确的部署设置
  • 但是在你的配置文件中你没有MyApp.Properties.Settings.GigaSpaceLocator 所以没有什么可以替换
  • 这是一个复制粘贴错误。看更新的问题,设置叫Url

标签: c# .net settings slowcheetah


【解决方案1】:

如果我猜对了,你有这个:

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="MyApp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <userSettings>
        <MyApp.Properties.Settings>
            <setting name="Url" serializeAs="String">
                <value>
                    something
                </value>
            </setting>
        </MyApp.Properties.Settings>
    </userSettings>
</configuration>

你想把它转换成:

(将&lt;value&gt;something&lt;/value&gt;替换为&lt;value&gt;www.google.com&lt;/value&gt;

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="MyApp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <userSettings>
        <MyApp.Properties.Settings>
            <setting name="Url" serializeAs="String">
                <value>
                    www.google.com
                </value>
            </setting>
        </MyApp.Properties.Settings>
    </userSettings>
</configuration>

最简单的方法是在转换文件中包含以下文本:

<?xml version="1.0"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <userSettings>
        <MyApp.Properties.Settings>
            <setting name="Url" serializeAs="String">
                <value xdt:Transform="Replace">
                    www.google.com
                </value>
            </setting>
        </MyApp.Properties.Settings>
    </userSettings>
</configuration>

它将 (&lt;value xdt:Transform="Replace"&gt;) 您的 &lt;value&gt;&lt;/value&gt; 替换为您想要的文本。

或者,如果您想选择要替换为name="Url" 属性的部分:

<?xml version="1.0"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <userSettings>
        <MyApp.Properties.Settings>
            <setting name="Url" serializeAs="String" xdt:Transform="Replace" xdt:Locator="Match(name)">
                <value>
                    www.google.com
                </value>
            </setting>
        </MyApp.Properties.Settings>
    </userSettings>
</configuration>

我们在这里执行相同的操作(替换:xdt:Transform="Replace"),但我们通过匹配属性达到要更改的值:xdt:Locator="Match(name)"

【讨论】:

  • 我已经测试了两者并且它们都可以工作,但可能使用完整的文件它没有!
猜你喜欢
  • 2013-05-29
  • 2014-08-06
  • 2018-09-14
  • 2015-06-18
  • 1970-01-01
  • 2012-02-20
  • 1970-01-01
  • 2012-04-30
  • 2013-03-20
相关资源
最近更新 更多