Репликация VS2008 «Опубликовать веб-сайт» из командной строки - PullRequest
36 голосов
/ 22 апреля 2009

Я пытаюсь воспроизвести точную функциональность этого диалога в Visual Studio 2008 в сценарии сборки: alt text

Это веб-сайт ASP.NET , а не веб-приложение .

Я обыскал это и обнаружил немало вещей, связанных с MSBuild, но, похоже, все это касается решений, выложенных в виде веб-приложений 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

Эта статья , похоже, относится к веб-сайтам ASP.NET, но я обнаружил, что получаю сообщение об ошибке при попытке выполнить сборку с использованием этих предложений:

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

Решение, которое я пытаюсь опубликовать (унаследовано, а не мое), не имеет файлов .csproj (куда я могу импортировать цель _CopyWebApplication из C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v9 0,0 \ WebApplications \ Microsoft.WebApplication.targets)

Возможно, это различие в Visual Studio 2005/2008?

В любом случае, я чувствую, что иду по неверному пути.

По сути, мне просто нужно добиться точно того, что делает приведенный выше диалог, но из командной строки.

Большое спасибо

Ответы [ 11 ]

0 голосов
/ 22 апреля 2009

В функции «Публикация ...» нет ничего волшебного, которую вы не могли бы воссоздать самостоятельно, тем более что вы используете сетевой файловый ресурс.

По сути, все, что он делает, это копирует ваши файлы из одного места в другое. Используя NAnt, вы можете выполнить это с помощью задачи copy или использовать задачу exec для вызова xcopy Если вы используете инструмент сборки, отличный от Нет, я уверен, что есть поддержка для подобных задач.

Если вы хотите оставить исходный код и информацию отладки позади, вы можете исключить файлы, заканчивающиеся на .cs или .pdb. И NAnt copy, и xcopy предоставляют простые способы сделать это.

...