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 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. p> 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. p> Je me rends compte que je peux résoudre ce problème si j'insère si j'insère p> 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) P> 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. P> 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. p> p>
3 Réponses :
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é au projet de service Web en question. P> p >
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. P>
Pour désactiver toutes les transformations, vous pouvez ajouter ceci comme décrit Ici . P>
Pour désactiver tous les paramètres d'un package de déploiement:
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. P>
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». P>
Par exemple: P> espère que cela aide quelqu'un! p> chris p> p>
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 code> 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 MSBUILD - - De cette façon, vous remplacez les propriétés déjà existantes dans vos fichiers ProJ ou ajouter des nouveaux dont vous avez besoin (juste comme
AutoparamététrationWebConfigConnectionsTringsRingStrings Code>) J'espère que cela vous aide;) (Exemple: Stackoverflow.com/a/6052146/2186023 )
@Drcopastet J'essaie d'utiliser
autonomaramététrationwebconfigConnections code> et
DisableallvsgeneratedmsDeployPloyParame Code> Pour publier des packages de déploiement Web de Visual Studio 2013. Où les mettez-vous exactement? Dans le fichier
CSPROJ code>? 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 code> créé dans
Dossier de projet / Propriétés / Publishprofiles Code> 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.