2009-05-22 6 views
11

Je souhaite simuler l'élément de menu "Publier ..." du menu contextuel Projet de service WCF (ou Application Web ASP.NET ou ...) dans Visual Studio 2008. Je n'ai pas besoin de le publier sur une instance IIS en cours, juste pour mettre le contenu web avec le dossier bin sur un répertoire local. Est-il possible de l'ajouter dans les événements post-construction ou dans une tâche MSBuild?Publication du service WCF (ou de l'application Web ASP.NET) à l'aide de la ligne de commande

Répondre

9

Voici la réponse, grâce à ce lien: http://codingcockerel.co.uk/2008/05/18/how-to-publish-a-web-site-with-msbuild/ Alors, je viens de modifier le fichier .csproj d'application web, et a écrit ceci dans AfterBuild cible (qui était déjà là):

<Target Name="BeforeBuild"> 
    <Message Text="##############Before build##################" Importance="high"/> 
    <RemoveDir Directories="publish" 
     ContinueOnError="true"/> 
</Target> 
<Target Name="AfterBuild"> 
    <Message Text="##############After build##################$(OutputFolder)" Importance="high"/> 
    <MSBuild Projects="$(ProjectName).csproj" 
      Targets="ResolveReferences;_CopyWebApplication" 
      Properties="WebProjectOutputDir=publish\;OutDir=publish\bin\" /> 
</Target> 
0

Vous devriez être capable d'écrire une commande xcopy pour copier les fichiers dont vous avez besoin au bon endroit. Microsoft a un article sur xcopy deployment for asp.net.

Une fois que vous avez la commande à droite, vous pouvez la placer dans les actions de Post-construction afin qu'elle se déclenche automatiquement après une construction.

Voir également VS Post Build Event pour des exemples sur la copie de la sortie dll (notez l'utilisation de $ (TargetPath) & $ (TargetDir)).

0

HI, Vous devriez jeter un coup d'œil à Web Deployment Projects. Ce sont en fait des fichiers MSBuild avec prise en charge Visual Studio GUI. Ils pré-compileront votre site. Vous pouvez étendre le comportement de ceux-ci pour copier les fichiers générés sur votre serveur Web.

Sayed Ibrahim Hashimi

Mon livre: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

+0

J'ai des problèmes avec les projets de déploiement Web, car ils déploient le fichier .csproj, le dossier obj et tous les autres trucs inutiles. Je voudrais simplement reproduire le comportement de la commande "Publier ..." dans le menu contextuel du projet Application Web (pas Site Web). Y at-il un moyen plus facile, ou je dois les exclure manuellement, tout comme avec le xcopy? –

Questions connexes