Отредактируйте файл конфигурации с помощью Ant xmltask

<configuration>
  <userSettings>
        <IntegrationTests.Resources.IntegrationTests>
            <setting name="UserAppPath" serializeAs="String">
                <value>C:\Program Files (x86)\App\</value>
            </setting>
            <setting name="LogFilePath" serializeAs="String">
                <value>C:\logfiles\</value>
            </setting>
        </IntegrationTests.Resources.IntegrationTests>
  </userSettings>
</configuration>

У меня есть вышеупомянутый xml-файл, я хочу, чтобы моя сборочная работа динамически редактировала эти значения пути во время выполнения задания... поэтому, если имя параметра равно UserAppPath, то обновите тег значения того же самого с правильным путем, то же самое, если параметр LogFilePath, то отредактируйте путь к лог-файлу на основе ведомого, который я выбрал... как и у меня может быть n настроек, но может быть интересно изменить только некоторые из них. Я попытался заменить, вставить спросить муравей xmltask. но не решил мою проблему.... любая помощь будет оценена

1 ответ

Вы можете сделать это, используя копирование с помощью filterset.

Поместите ваши переменные в файл свойств, например

user.app.path=C:\\Program Files (x86)\\App\\
logfile.path=C:\\logfiles\\

Создайте шаблонную версию вашего файла конфигурации, например

<configuration>
  <userSettings>
        <IntegrationTests.Resources.IntegrationTests>
            <setting name="UserAppPath" serializeAs="String">
                <value>@user.app.path@</value>
            </setting>
            <setting name="LogFilePath" serializeAs="String">
                <value>@logfile.path@</value>
            </setting>
        </IntegrationTests.Resources.IntegrationTests>
  </userSettings>
</configuration>

В своем файле сборки создайте версию файла конфигурации, заменив заполнители в версии шаблона на filterset:

<project name="test" default="test">
  <target name="test">
    <copy file="config_template.xml" tofile="config.xml">
      <filterset begintoken="@" endtoken="@">
        <filtersfile file="config.properties" />
      </filterset>
    </copy>
  </target>
</project>
Другие вопросы по тегам