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 dans ceci: p> (malheureusement je ne peux pas pré-stocker le web.config avec une option code> vide code> Elément car ce système de plugin particulier n'a pas 't comme des options non reconnues / vides.) p> merci pour des idées! p> p> correspond à code > 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: p>
4 Réponses :
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>
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 code> en fonction de quel plugin unique choisit de déployer.
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 fort>. La langue spécialement conçue pour la transformation d'un document XML est appelée. Xslt. P> Voici une transformation XSLT très courte et simple qui résout votre problème fort>: p> Le résultat correct est produit fort>: p>
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!
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: à ceci avec configsource: p> 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. P> p>
De telles choses sont maintenant possibles en commençant par le déploiement Web V3.
Voir le Documentation officielle A>. Voici un exemple de fichier de paramètres.xml qui ajoutera NewNode à tous les nœuds, y compris la racine dans le fichier XML cible: p>
blockQuote>
Leur solution consiste à ajouter des blocs XML codés sous forme de valeurs. Je trouve vraiment cette approche ridicule. Ce qui fait pire, c'est que c'est la solution "officielle" de Microsoft. J'ai des sections XML assez complexes qui doivent être ajoutées au moment du déploiement de TFS en azur, ce qui est juste horrible de travailler avec.
Considérez cela comme un piratage plutôt qu'une solution. Je conviens que cette approche est horrible pour les blocs complexes. Pourriez-vous utiliser web.config transforme à la place?
Bonne question, +1. Consultez ma réponse pour une solution complète, courte, simple et facile.