Comment Publier Web avec msbuild?

Visual Studio 2010 a une Publier de commande qui vous permet de publier votre Projet d'Application Web à un emplacement du système de fichiers. J'aimerais faire cela sur mon TeamCity serveur de build, donc j'ai besoin de le faire avec la solution coureur ou msbuild. J'ai essayé d'utiliser le Publier cible, mais je pense que cela pourrait être pour de ClickOnce:

msbuild Project.csproj /t:Publish /p:Configuration=Deploy

En gros, je veux faire exactement ce qu'est un projet de déploiement web, mais sans le complément. J'en ai besoin pour compiler le WAP, supprimer les fichiers inutiles pour l'exécution, d'effectuer toute web.config transformations, et copie le résultat dans un emplacement spécifié.

Ma Solution, basé sur Jeff Siver la réponse de

<Target Name="Deploy">
    <MSBuild Projects="$(SolutionFile)" 
             Properties="Configuration=$(Configuration);DeployOnBuild=true;DeployTarget=Package" 
             ContinueOnError="false" />
    <Exec Command="&quot;$(ProjectPath)\obj$(Configuration)\Package$(ProjectName).deploy.cmd&quot; /y /m:$(DeployServer) -enableRule:DoNotDeleteRule" 
          ContinueOnError="false" />
</Target>
  • double possible: stackoverflow.com/questions/1162253/...
  • Je suis actuellement à l'aide de Web des Projets de Déploiement dans VS 2008 (comme je l'ai mentionné dans ma réponse à cette question), mais je voudrais essayer de l'automatisation de la fonctionnalité de publication de VS 2010 à la place.
  • Cette question semble utile stackoverflow.com/questions/1983575/...
  • Juste une petite modification à votre script: vous êtes en utilisant $(Dossier) pour le script de déploiement, mais que vous voulez vraiment est $(ProjectDir) sinon vous vous retrouvez avec .csproj\obj
  • Chasse Dossier est en fait une variable dans mon script qui contient le chemin relatif du dossier de projet, mais ProjectDir devrait également fonctionner.
  • Pour info Web Déploiement Projectd sont juste MSBuild fichiers, de façon à ce que le même comportement et de ne pas les utiliser signifie simplement que vous devrez écrire le MSBuild vous-même. Si vous ne voulez pas voir en VS, puis, après que vous l'ajouter, il suffit de le retirer. PDEO prend en charge ASP.NET Compiler/Fusion laquelle je ne vois aucune mention d'une quelconque réponse ici.
  • Départ avec VS2012, c'est beaucoup plus facile: stackoverflow.com/a/13947667/270348

InformationsquelleAutor jrummell | 2010-06-22