J'essaie d'avoir mon application Web automatiquement Publier quand une version Release est effectuée. Je fais cela en utilisant la cible _CopyWebApplication. J'ai ajouté ce qui suit à mon fichier .csproj:_CopyWebApplication avec les transformations web.config
<!-- Automatically Publish in Release build. -->
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
<Target Name="AfterBuild">
<RemoveDir Directories="$(ProjectDir)..\Output\MyWeb" ContinueOnError="true" />
<MSBuild Projects="MyWeb.csproj" Properties="Configuration=Release;WebProjectOutputDir=$(ProjectDir)..\Output\MyWeb;OutDir=$(ProjectDir)bin\" Targets="ResolveReferences;_CopyWebApplication" />
</Target>
Cela fonctionne mais avec un 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. Au lieu de cela, Web.config, Web.Release.config et Web.Debug.config sont tous copiés.
Toutes les idées sont appréciées.
WTF Microsoft? Merci de partager ce Jabe ... – jjxtra
Je me demande s'il y a un moyen de corriger la copie d'une bibliothèque recréée via un autre projet à inclure dans msbuild ouput dir? –
J'ai essayé de le faire avec WebDeploy use/p: WebPublishMethod = FileSystem et en utilisant les fichiers pubxml. Je ne pouvais pas le faire fonctionner. Cette solution est la meilleure façon que j'ai trouvée. Un conseil: je ne pouvais pas le faire fonctionner sans l'ensemble de propriétés OutDir. Vous devrez l'inclure dans la ligne de commande même s'il est déjà défini dans les propriétés de votre projet. –