7
votes

"AutoparamétrationWebConnectionsConnectionsStrings" -Option "Option Le seul moyen d'empêcher la tokénisation des chaînes de connexion?

J'essaie toujours de me donner la tête autour des choses Msbuild. Actuellement, je suis traduis par le déploiement via PowerShell Script en utilisant les scripts générés à partir du packageweb-Nuget-Package (< Un href = "https://www.youtube.com/watch?v=-lvujfi8czm" rel = "Noreferrer"> Démo vidéo ). J'ai essayé de sortir pendant quelques jours maintenant et cela semblait travailler. Mais "soudainement" la chaîne de connexion dans le web.config générées est tokenized et au lieu de la chaîne de connexion en question, je vois xxx

j'ai écrit "soudainement" parce que je ne pouvais pas lier ceci (pour moi nouveau) comportement à tout ce que j'avais fait dans les heures précédentes.

Donc de résumer: le déploiement de package fonctionne bien, la transformation de configuration correcte est également appliquée, mais je me retrouve avec ce goûté. chaîne de connexion.

Je me rends compte que je peux résoudre ce problème si j'insère si j'insère xxx

dans un groupe de propriété (je viens de le mettre dans le fichier cibles générées qui Le package Nuget crée)

Cependant, je n'aime vraiment pas cela, devoir insérer cette valeur supplémentaire dans chaque projet qui pourrait en avoir besoin; Surtout parce que je ne savais pas que j'ai besoin de cet ajustement en premier lieu. Hier, cela a fonctionné et je n'avais pas cette ligne supplémentaire insérée dans aucun fichier de projets ou de cibles.

Donc j'espérais que quelqu'un connaisse peut-être un commutateur supplémentaire, un tour ou un réglage supplémentaire qui pourrait avoir une influence supplémentaire sur Comment cela fonctionne aussi.


6 commentaires

Ceci est vieux, mais Seriez-vous PLZ partager vos résultats sur la façon dont vous l'avez fait sans spécifier cette propriété LOOOOOOG dans. * Fichier Proj?


@Ostati doit être honnête, je n'ai pas "résolu" qu'à aucun point - la propriété AutoparamétrationwebconfigConnectionsStrings = Faux fait toujours partie de mon processus de déploiement; Bien que je n'ai rencontré aucun problème avec cela, outre esthétiquement, je serais toujours très intéressé si cela peut être contourné de quelque manière que ce soit.


@Ostati à ajouter à cela, la principale chose que je n'ai pas détestée à ce sujet devait modifier chaque projet (Fichier Proj) de ce projet; Cependant, vous ne devez pas faire cela, vous pouvez passer des propriétés comme paramètres sur MSBUILD AutoparamététrationWebConfigConnectionsTringsRingStrings ) J'espère que cela vous aide;) (Exemple: Stackoverflow.com/a/6052146/2186023 )


@Drcopastet J'essaie d'utiliser autonomaramététrationwebconfigConnections et DisableallvsgeneratedmsDeployPloyParame Pour publier des packages de déploiement Web de Visual Studio 2013. Où les mettez-vous exactement? Dans le fichier CSPROJ ? J'ai essayé ça et cela donne une erreur.


@Heinrich, j'appelle effectivement Msbuild directement et remplace les propriétés avec cette cmd comme Ce ; Vous devriez aussi aussi être capable de Utilisez ces paramètres Dans votre fichier de projet directement . Vous devez faire attention si ces paramètres sont modifiés dans une étape ultérieure, par exemple transmis dans la ligne de commande remplacera (augmenter) les propriétés connues dans le fichier de projet.


@DRCOPOPASTE Il n'a pas fonctionné lorsque je l'ai mis directement dans le fichier de projet, cela créerait une erreur sur la construction. Je l'ai mis dans le fichier de paramètres de publication .pubxml créé dans Dossier de projet / Propriétés / Publishprofiles Lorsque vous créez un profil dans la boîte de dialogue Publier-> Web Déployez le package. Il n'y avait pas une erreur après l'avoir placé là-bas.


3 Réponses :


0
votes

J'ai noté que des choses comme $ (remplabletoken_ semblent se produire au hasard lors de la publication et ont été capables de réparer la situation en effectuant un nettoyage avant de reconstruire et de republier. Cependant, puisque vous ne pouvez pas vraiment savoir que si vous ne vérifiez toujours manuellement le web.config après la publication, j'ai également ajouté xxx

au projet de service Web en question.


0 commentaires

6
votes

Microsoft utilise Paramétrage automatique par défaut. Cela inclut les connexions HET. Vous pouvez désactiver cela en ajoutant ceci au fichier de projet.

FALSE

Pour désactiver toutes les transformations, vous pouvez ajouter ceci comme décrit Ici .

false

Pour désactiver tous les paramètres d'un package de déploiement: True


0 commentaires

1
votes

Maintenant que ma société utilise l'outil "Divulgation Manager" de TFS, qui fonctionne d'une seule version, nous n'utilisons plus Web.config transforme plus et utilise plutôt la méthode des paramètres WebDeploy MS Webdeploy pour obtenir des valeurs d'échange de environnements. Cependant, j'ai rencontré la question de la chaîne de connexion «auto-gen'd» mentionnée ci-dessus. Vous trouverez ci-dessous un travail autour de celui-ci.

Si vous utilisez des paramètres.xml fichiers de votre projet, si vous donnez votre paramètre le même nom que l'auto-Gen'd une pour votre chaîne de connexion, cela fonctionne.

SO ci-dessous j'ai un 'dbconnectionNameHere' (quel serait mon exemple de nom de connexions "Nom" dans le Web.config), puis je viens d'ajouter "-web.config Connection String" au nom. Maintenant au lieu de la chaîne Auto-Gen'd Conn, remplaçant la mienne dans le fichier Parameters.xml, il fonctionnera et ajoutera simplement une balise enfant supplémentaire et inoffensif '«ParameTentry».

Par exemple: xxx

espère que cela aide quelqu'un!

chris


0 commentaires