2017-06-08 1 views
0

Voici bref résumé de la situation actuelle: Dans ma solution (application console) J'utilise app.config fichier avec l'entrée comme ceci:.NET App.config. Comment remplacer l'attribut de fichier?

< appsettings file = "Additional.config"> sur notre environnement de production ce fichier est fourni par une routine séparée et nous ne voulons pas le mettre dans le dépôt de fichiers de projets. Encore nous avons besoin d'un moyen pratique d'exécuter la solution dans l'environnement de développement.

Nous sommes venus avec une idée pour remplacer l'attribut fichier en utilisant SlowCheetach. Cela fonctionne très bien avec le remplacement des entrées de valeur-clé, mais nous sommes incapables de le faire fonctionner correctement.

Y at-il un moyen de remplacer fichier propriété avec SlowCheetach ou tout autre outil léger? Nous voulons vraiment éviter d'utiliser des scripts de construction pour modifier la sortie de app.config.

Répondre

0

La solution ci-dessous ne fonctionne pas correctement car id n'est pas un élément de schéma valide. Solution réelle au fond.

J'ai trouvé un moyen simple d'accomplir cela. Tout ce qui est nécessaire pour faire est d'ajouter un autre attribut à appsettings et le définir comme sélecteur CORRESPONDRE entrée dans app.config ressemblerait à ceci:

<appSettings file="Additional.config" id="appconfig"> 

et celui App.Debug.config:

<appSettings id="appconfig" file="New/Path/To/Additional.config" xdt:Transform="Replace" xdt:Locator="Match(id)"> 

Véritable solution ici:

Il se avère que vous pouvez simplement utiliser sous forme de transformation:

<appSettings xdt:Transform="RemoveAttributes(file)"> 

qui supprimera seulement les attributs passés à RemoveAttributes et laissera le reste de la config intacte.

Plus sur les attributs de transformation possibles peuvent être lus here