Преобразование пользовательских настроек с помощью slowCheetah
Я пытаюсь изменить конфигурацию пользователя по умолчанию в соответствии с профилем сборки с 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>
Я пытался
<!-- & it's an & escaped in xml-->
<add key="MyApp.Properties.Settings.Url" value="www.google.com" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
Но это не работает.
Как я могу это сделать?
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>
И вы хотите преобразовать его в:
(заменить
<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">
) ваш<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)"