9
votes

Puis-je insérer des éléments dans web.config avec le déploiement Web?

est-il possible d'insérer un élément XML dans ma web.config à l'aide de paramètre.xml système ?

Le paramètre XMLFILE "type" semble être le plus proche de ce dont j'ai besoin, mais son correspond à L'attribut n'accepte qu'une requête XPath, et je ne semble pas être capable de spécifier un élément inexistant de ma requête XPath. (Ou plutôt, je peut spécifier un élément non existant - le déploiement Web qui l'ignore.) Spécifiquement, je voudrais transformer ceci: xxx

dans ceci: xxx

(malheureusement je ne peux pas pré-stocker le web.config avec une option vide Elément car ce système de plugin particulier n'a pas 't comme des options non reconnues / vides.)

merci pour des idées!


1 commentaires

Bonne question, +1. Consultez ma réponse pour une solution complète, courte, simple et facile.


4 Réponses :


0
votes

Pouvez-vous simplement utiliser les pratiques de transformation Web.config régulières? http: // blogs .msdn.com / b / webdevTools / archive / 2009/05/04 / web-déploiement-web-config-transformation.aspx

Vous pouvez effectuer le code ci-dessous qui remplacera toute votre section avec la un ci-dessous. En fait, ce que vous avez dans vos questions doit remplacer la totalité de votre section avec celle que vous avez fournie s'il s'agissait de votre fichier web.Release.config. P>

web.release.config: p>

<plugins>
  <add name="bleh">
     <option name="foo" value="bar"/>
  </add>
</plugins>


1 commentaires

Merci pour le commentaire! Malheureusement, je dois faire cette transformation au moment du déploiement, pas à la hauteur de la construction. C'est-à-dire que j'ai besoin d'ajouter d'option en fonction de quel plugin unique choisit de déployer.



1
votes

xpath n'est qu'une langue de requête pour les documents XML - il ne peut pas en elle-même modifier un document XML ou créer un nouveau document XML .

La langue spécialement conçue pour la transformation d'un document XML est appelée. Xslt.

Voici une transformation XSLT très courte et simple qui résout votre problème : xxx

quand il La transformation est appliquée sur le document XML fourni : xxx

Le résultat correct est produit : Xxx


3 commentaires

XSLT serait génial - et merci pour l'exemple! - Mais comment puis-je intégrer une telle transformation dans le processus de déploiement Web?


@ladenedge: Je ne connais pas le déploiement Web, mais s'il permet d'utiliser n'importe quel langage de programmation (tel que c #, vb.net, jscript) ou même un programme de ligne de commande, on peut ouvrir la transformation de manière standard.


Il y a un Fournisseur de RunCommand pour le déploiement Web , bien que je rencontre un problème de chemins relatifs . Quoi qu'il en soit, un XSLT externe semble être la bonne réponse ici, alors merci de votre aide!



1
votes

Avez-vous envisagé d'utiliser configsource ? Cela vous permet de scinder vos fichiers de configuration en plusieurs fichiers plus petits. Le web.config irait de: xxx

à ceci avec configsource: xxx

L'inconvénient est que vous n'obtiendrez pas une belle assurance-emploi Pour éditer des valeurs de configuration pendant le déploiement. C'est quelque chose à considérer si vous ne pouvez pas obtenir de paramétrage pour travailler. Si l'installation d'installation est ce que vous êtes après, vous pouvez coder un outil d'édition pour vos administrateurs pouvant créer et modifier les fichiers plugin.xml.


0 commentaires