8

我正在尝试根据使用 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)"/>

但它不起作用。

我怎样才能做到这一点?

4

1 回答 1

13

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

<?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>

您想将其转换为:

(替换<value>something</value><value>www.google.com</value>

<?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>

它将 ( <value xdt:Transform="Replace">) your替换<value></value>为您想要的文本。

或者,如果您想选择要替换为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-01-14T17:39:12.340 回答