Как я могу изменить несколько файлов с XMLUpdate?

Я использую XMLUpdate для обновления нескольких файлов конфигурации в подкаталогах.

Я думал, что смогу сделать что-то вроде этого:

<XmlUpdate Namespace="http://schemas.microsoft.com/.NetConfiguration/v2.0"
    XmlFileName="\\$(BuildEnvironment)\websites\*.config"
    Xpath="//configuration/appSettings/add[@key='Site']/@value"
    Value="sitename"
        />

Где у меня следующая структура:

Websites
|
|-site1\web.config
|
|-site2\web.config
|
|-site3\web.config

Таким образом, идея заключается в том, что вместо того, чтобы писать задачу xmlupdate много раз, я мог бы использовать вышеизложенное и обновлять множество конфигурационных файлов одновременно.

Это возможно?

1 ответ

Да, я уверен, что это возможно, но я думаю, что вам нужно использовать <ItemGroup> для этого нужно получить коллекцию файлов. Что-то вроде:

<ItemGroup>
  <documentation_files Include="\\$(BuildEnvironment)\websites\**web.config" />
</ItemGroup>
<XmlUpdate
    XmlFileName="@(documentation_files)"
    Xpath="//configuration/appSettings/add[@key='Site']/@value"
    Value="sitename" />

Я оставил Value статический, но если вы хотите изменить его на текущую папку, вы можете использовать что-то вроде Value="%(documentation_files.RecursiveDir)",

Примечание. Этот код является лишь примером. Возможно, вам придется немного изменить его, чтобы получить то, что вы хотите, но я надеюсь, что это поможет вам.

Другие вопросы по тегам