Comment dois-je faire Web.config Transformations avec Visual Studio les Projets de Site web?
Il ne semble pas être possible de modifier la Configuration de Visual Studio 2010 Projets de Site web (contrairement à Visual Studio Web Applications), et la modification de la Configuration de Build est un élément clé de l'activation de Web.config transformations (il n'est pas possible de changer la configuration de rien, sauf de Débogage).
Comment puis-je obtenir Web.config transformations de travailler avec Visual Studio 2010 projets de Site web s'il n'est pas possible de changer la Configuration de Build?
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé un très bon post de blog décrivant une solution à ce ici:
http://andrewtwest.com/2010/02/25/using-web-config-transformations-in-web-site-projects/
En bref: créer un projet vide (tant qu'il n'est pas un autre projet de site web) dans votre solution qui contient le site web. Le projet vide, vous donnera accès à msbuild à travers son projet de fichier, ce qui vous permettra d'effectuer des transformations sur votre site web.config.
Je préfère ne pas utiliser la totalité d'un Projet d'Application Web solution hors de la boîte.
Ma solution est d'utiliser le XmlTransform tâche définie dans Microsoft.Web.Publishing.Tasks.dll directement (cette tâche est à la base de WebConfigTransformation)
De cette manière, il est assez souple et fait exactement ce que vous attendez pour le faire.
Par exemple voici la WebSiteTransformator.csproj que j'utilise pour transformer le web.config.
Ici est aussi un exemple de la flexibilité, qui est impossible à atteindre avec l'original WebConfigTransformation: il faut du web.De modèle.config, s'applique web.$(Configuration).config plus et qu'il écrit web.config. Ceci nous permet d'ajouter web.config lui-même dans la liste des ignorés dans le contrôle de source. Il est toujours valide csproj à être référencé par le site:
J'ai utilisé un peu autre approche. Encore un peu un hack, mais je pense que beaucoup plus simple. Cela a fonctionné pour moi, mais évidemment il y a beaucoup de différentes configurations disponibles, donc je ne peux pas le garantir, il va travailler pour tout le monde. Celle-ci s'articule autour de la même façon qu'un site web est d'abord présentée à votre
AppData
dossier avant d'être publié...Ajouter manuellement un
Web.Release.config
fichier sur le site et ajouter le nécessaire transforme - de toute évidence, il n'y a pas de 'Ajouter Config Transformer" l'option pour les sites web, et donc d'avoir à le faire manuellement. Exemple Web.La libération.config:À l'intérieur de la
website.publishproj
fichier, assurez-vous que la configuration est prévue pour une sortie:Ajouter le texte suivant à la fin de
website.publishproj
(juste avant</Project>
):Comme mentionné dans Andriy du commentaire ci-dessus, Solution de large construire des événements semble définitivement comme une manière plus propre de le faire.
Je suis d'ajouter ce que une réponse distincte, comme elle est un peu perdu dans le commentaire, mais à mon humble avis est la meilleure réponse. Accessoires pour Andriy K et Sayed Ibrahim.
Si vous préférez ne pas avoir besoin d'un site Web.De modèle.config, j'ai utilisé ceci:
Adapté à partir d'une réponse ici.