Как лучше всего обновить узел XML в MSBuild

В вашей схеме вам нужно поместить animal и person внутри объекта properties.

В настоящее время, поскольку эти ключи свойств не находятся внутри объекта properties, они классифицируются как неизвестные ключевые слова и игнорируются.

В противном случае, да, вы правильно поняли.

5
задан Julien Hoarau 3 February 2009 в 08:11
поделиться

1 ответ

Вы могли использовать XmlMassUpdate вместо задачи XmlUpdate.

<ProjectExtensions>
  <defaultProxy>
    <proxy usesystemdefault="False" proxyaddress="http://IPADDRESS:PORT"/>
  </defaultProxy>
</ProjectExtensions>

<Target Name="SubstituteFromWebConfig">
  <XmlMassUpdate 
    NamespaceDefinitions="msb=http://schemas.microsoft.com/developer/msbuild/2003;n=http://schemas.microsoft.com/.NetConfiguration/v2.0"
    ContentFile="$(BuildDir)\Builds\_PublishedWebsites\Presentation\Web.config" 
    ContentRoot="/n:configuration/n:system.net"
    SubstitutionsFile="$(MSBuildProjectFullPath)"
    SubstitutionsRoot="/msb:Project/msb:ProjectExtensions/msb:system.web" />
</Target> 

В этом примере мы заменяем узел, на который указывает ContentRoot в ContentFile тем, на который указывает SubstitutionsRoot в SubstitutionsFile (Текущий файл MSBuild).

Эта техника использует в своих интересах элемент MSBuild ProjectExtensions, который позволяет Вам добавлять XML к файлу проекта, который будет проигнорирован механизмом MSBuild.

(Или если Вы не хотите использовать XmlMassUpdate, Вы могли бы использовать задачу XmlRead на узле в ProjectExtensions и XmlUpdate.)

7
ответ дан 14 December 2019 в 09:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: