36 votes

Reproduire VS2008 "Publier le site Web" à partir de la ligne de commande

J'essaie de reproduire la fonctionnalité exacte de ce dialogue dans Visual Studio 2008 dans un build script : alt text

Il s'agit d'un site Web ASP.NET site pas un web application .

J'ai fait des recherches sur Google et j'ai trouvé pas mal de choses impliquant MSBuild, mais tout cela semble concerner des solutions présentées comme des applications Web ASP.NET :

http://www.driebier.net/post/Using-MSBuild-to-deploy-visual-studio-2005-web-applications.aspx http://blog.donnfelker.com/post/TFS-Build-Not-Publishing-Web-Applications.aspx

Cet article semble s'appliquer aux sites Web ASP.NET, mais je constate que je reçois une erreur lorsque j'essaie de construire en utilisant ces suggestions :

C:\\dev\\T&A>msbuild /t:\_CopyWebApplication /property:OutDir=c:\\temp\\taweb\\ /prope
rty:WebProjectOutputDir=c:\\temp\\taweb\\

Microsoft (R) Build Engine Version 3.5.30729.1
\[Microsoft .NET Framework, Version 2.0.50727.3074\]
Copyright (C) Microsoft Corporation 2007. All rights reserved.

Build started 22/04/2009 11:50:42.
Project "C:\\dev\\T&A\\TAWeb.sln" on node 0 (\_CopyWebApplication target(s)).
  Building solution configuration "Debug|.NET".
C:\\dev\\T&A\\TAWeb.sln : error MSB4057: The target "\_CopyWebApplication" does not
 exist in the project.
Done Building Project "C:\\dev\\T&A\\TAWeb.sln" (\_CopyWebApplication target(s)) --
 FAILED.

Build FAILED.

"C:\\dev\\T&A\\TAWeb.sln" (\_CopyWebApplication target) (1) ->
  C:\\dev\\T&A\\TAWeb.sln : error MSB4057: The target "\_CopyWebApplication" does n
ot exist in the project.

0 Warning(s)

1 Error(s)

Time Elapsed 00:00:00.06

La solution que j'essaie de publier (héritée, pas la mienne) n'a pas de fichiers .csproj (où je pourrais importer la cible _CopyWebApplication à partir de C:\Program Fichiers (x86) \MSBuild\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets )

Peut-être s'agit-il d'une différence de Visual Studio 2005/2008 ?

Bref, j'ai l'impression de faire fausse route.

Essentiellement, j'ai juste besoin de réaliser exactement ce que fait le dialogue ci-dessus, mais à partir de la ligne de commande.

Merci beaucoup.

-1voto

Brad Tutterow Points 5628

Il n'y a rien de magique dans la fonction "Publier..." que vous ne pourriez pas recréer par vous-même, d'autant plus que vous visez un partage de fichiers en réseau.

Au fond, tout ce qu'il fait, c'est copier vos fichiers d'un endroit à un autre. En utilisant NAnt, vous pouvez le faire avec un fichier copie ou vous pouvez utiliser une exec tâche à appeler xcopy Si vous utilisez un outil de construction autre que NAnt, je suis sûr qu'il existe un support pour des tâches similaires.

Si vous voulez laisser votre code brut et vos informations de débogage derrière vous, vous pouvez exclure les fichiers qui se terminent par .cs ou .pdb. NAnt copy et xcopy offrent tous deux des moyens simples de le faire.

6 votes

La fonction de publication ne se contente pas de copier des fichiers, elle précompile le site Web ASP.NET, en plaçant tout le code dans des DLL et en plaçant des espaces réservés dans toute l'arborescence résultante, là où les pages .aspx (contenant le balisage) auraient été placées. C'est cette partie que j'essaie d'automatiser, pas celle qui consiste à "déplacer des fichiers". Le point ici est que je ne veux pas que le serveur web compile le code source.

0 votes

Oui, je me suis mal fait comprendre. Je pensais à une application web, pas à un site web.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X