_CopyWebApplication avec les transformations web.config

J’essaie de faire en sorte que mon application Web publie automatiquement lors de la génération d’une version. Je le fais en utilisant la cible _CopyWebApplication. J’ai ajouté ce qui suit à mon fichier .csproj:

      

Cela fonctionne mais avec un seul problème. La différence entre cette sortie et la sortie générée lors de l’utilisation de l’élément de menu Publier dans Visual Studio est que la transformation Web.Release.config n’est pas appliquée au fichier Web.config lors de l’utilisation de la méthode MSBuild. Web.config, Web.Release.config et Web.Debug.config sont tous copiés.

Toutes les idées sont appréciées.

Je me suis cogné la tête contre le mur pour cela. Après avoir parcouru les cibles MSBuild, je suis tombé sur quelque chose de très “opaque”.

Longue histoire courte: essayez d’utiliser le nouveau _WPPCopyWebApplication . Cela fonctionne sur ma machine. L’ancienne _CopyWebApplication ne prend pas en charge les transformations pour des raisons héritées. C’est ce que je fais:

 msbuild /t:Rebuild /p:OutDir=..\publish\;Configuration=Release;UseWPP_CopyWebApplication=True;PipelineDependsOnBuild=False MvcApplication1\MvcApplication1.csproj # UseWPP_CopyWebApplication = true requires PipelineDependsOnBuild = false 

Longue histoire:

Consultez VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets . C’est tellement faux. Trouvez _CopyWebApplication à la ligne 70. Le commentaire est le suivant:

L’original _CopyWebApplication est maintenant un inheritance, vous pouvez toujours l’utiliser en définissant $ ( UseWPP_CopyWebApplication ) sur true . Par défaut, il devient maintenant possible d’utiliser la cible _WPPCopyWebApplication dans Microsoft.Web.Publish.targets. Cela permet de tirer parti de la transformation web.config. [tout sic]

Uh oh. UseWPP_CopyWebApplication défaut de UseWPP_CopyWebApplication est false (ligne 27) si vous ne voulez pas casser le _CopyWebApplication existant. Donc, si vous le réglez sur true, vous utiliserez les nouvelles fonctionnalités de WPP introduites dans VS 2010. Je préfère cela à l’appel d’une cible “cachée”.