web-dev-qa-db-fra.com

Web.config n'est pas transformé lors du débogage du code

J'ai un fichier principal Web.config, Et en dessous il y a un Web.Test.config, Web.Development.Config Etc.

Lorsque je prévisualise la transformation via SlowCheetah dans la configuration de test, il semble transformer correctement les valeurs.

Lorsque je bascule mon environnement de génération de Développement vers Test et essaie de déboguer l'application, l'application s'exécute sous toutes les valeurs du fichier principal Web.config (C'est-à-dire qu'elle ne transforme rien).

Comment puis-je faire en sorte que l'environnement de génération sélectionne la bonne configuration lors du débogage plutôt que de toujours utiliser le fichier de base Web.config? Est-ce possible?

21
mameesh

Vous pouvez transformer Web.config lors de la construction. Ajoutez cette cible à *.csproj fichier:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets" />
<Target Name="BeforeBuild">
    <TransformXml 
        Source="Web.Base.config" 
        Transform="Web.$(Configuration).config" 
        Destination="Web.config" />
</Target>

Conservez la configuration d'origine dans Web.Base.config. Il suffit d'activer la transformation et cela fonctionne pour n'importe quel fichier de configuration XML. SlowCheetah n'est plus du tout nécessaire.

http://sebnilsson.com/a5410281/asp-net-transform-web-config-with-debug-release-on-build/

39
Ilya Chumakov

Les transformations XML ne seront appliquées que lorsque vous publiez des applications Web et non pendant la génération.

Ce article de blog détaille un travail autour de l'utilisation des paramètres de construction.

5
Christopher Dunn