Peut NuGet modifier un fichier de config ou seulement y ajouter?
J'ai travaillé sur un package NuGet pour mon entreprise et l'une des conditions est d'être capable de mettre à jour certains de nos fichiers de config.
Je sais que c'est possible d'ajouter à un fichier de config, mais est-il possible de modifier un?
Exemple:
<add name="conn" connectionString="Data Source=.\;Initial Catalog=DB;Integrated Security=True" />
modifications ci-dessous
<add name="conn" connectionString="Data Source=.\;Initial Catalog=DB;User ID=ex;Password=example" />
Vous devez vous connecter pour publier un commentaire.
De NuGet 2.6 et au-dessus, vous pouvez réellement transformer le Web.les fichiers de configuration à l'aide de la XDT syntaxe qui est utilisé pour le Web.config transforme dans Visual studio.
Voir http://docs.nuget.org/docs/creating-packages/configuration-file-and-source-code-transformations:
Support de XML-Document de Transformation (XDT)
De départ avec NuGet 2.6, XDT est pris en charge pour transformer des fichiers XML à l'intérieur d'un projet. Le XDT syntaxe peut être utilisée dans les .installer.xdt et .désinstaller.xdt fichier(s) en vertu de l'emballage Contenu du dossier, qui seront appliquées au cours de l'installation et la désinstallation de temps, respectivement.
Par exemple, pour ajouter MyNuModule sur le web.fichier de config comme ce qui est illustré ci-dessus, la section suivante peut être utilisée dans le web.config.installer.xdt fichier:
D'autre part, de ne supprimer que les MyNuModule élément au cours de la désinstallation, la section suivante peut être utilisée dans le web.config.désinstaller.xdt fichier:
NuGet transforme ne pouvez pas modifier les valeurs existantes. Mais NuGet vous permet d'exécuter des scripts Powershell sur le package d'installation, de sorte que vous pouvez éditer le fichier de configuration de cette façon.
Créer une Installation.ps1 fichier et utilisez ce code:
EDIT: La réponse est maintenant OUI comme de NUGET 2.6 et au-dessus.
La réponse est N. À partir de la nuget site, j'ai trouvé la réponse suivante:"Quand NuGet fusionne un fichier de transformation dans un projet, le fichier de configuration, il ajoute des éléments ou d'ajouter des attributs aux éléments existants dans le fichier de configuration; il ne modifie pas les éléments ou les attributs de toute autre manière."
http://docs.nuget.org/docs/creating-packages/configuration-file-and-source-code-transformationsOui, c'est possible, mais vous devez inclure installer.ps1 fichier dans outils dossier. Et puis, quand vous recevrez votre colis à partir de nuget server, visual studio exécuter des scripts Powershell.
J'utilise ce script