12
votes

Comment mettre à jour un attribut XML d'un script MsBuild?

J'utilise msbuild et Msbuild Community Tasks (à l'aide de xmlupdate et xmlmassupdate ) pour mettre à jour divers sections de mon web.config une chose a soulevé cependant. Si j'ai: xxx

et j'essaie de remplacer le nom de fichier de la cible xxx

Il rapporte comme étant incapable de trouver quoi que ce soit à la mise à jour, ma question est donc de savoir comment puis-je obtenir l'attribut nom de fichier à mises à jour?


EDIT: pourrait-il Soyez un cas d'affrontements d'espace de noms car la section Nlog définit son propre espace de noms?


update : la réponse postée déclarant que l'espace de nom ne fonctionne pas. < / p>


0 commentaires

3 Réponses :


4
votes

ici indique l'exigence d'un espace de noms < Pré> xxx

Pouvez-vous mettre à jour tout autre attribut?


1 commentaires

Ceci est utile mais ne résout pas le problème à la main, j'ai d'autres tâches xmlupdate qui ne déclarent pas l'espace de noms, mais la mise à jour correctement



21
votes

Le premier problème est que le XPath est incorrect pour mettre à jour l'attribut, il recherche actuellement des nœuds "cible" avec un attribut appelé "nom de fichier" plutôt que "nom de fichier" du nœud A appelé "cible".

Le XPath que vous voulez est: / Configuration / Nlog / Cible / Target / @ FileName

As comme pour le problème de l'espace de noms, Preet Sangha a la bonne réponse à ce , vous devez utiliser le préfixe de l'espace de noms, ce qui doit également être appliqué à chaque sous-élément, car ils sont tous Dans cet espace de noms.

L'instruction finale étant: xxx


0 commentaires

3
votes

Pour compléter la réponse donnée par Keeperofthesoul (Je pense que vous devriez lui donner la Bounty BTW) Jetez un oeil à: XXX

Ici, j'utilise % 24 pour écrire le caractère spécial $ .


0 commentaires