Веб-сайт ASP.NET «Опубликовать» против проекта веб-развертывания - PullRequest
14 голосов
/ 04 ноября 2008

, если я решу использовать опцию «публикация» для моего веб-сайта ASP.NET вместо проекта веб-развертывания, могу ли я сделать что-то нестандартное? Или мне нужно придерживаться WDP, если я хочу делать пользовательские вещи msbuild во время компиляции / развертывания.

Ответы [ 4 ]

4 голосов
/ 04 ноября 2008

Я считаю опцию публикации частью набора инструментов VS.NET, которую разработчики могут использовать для публикации веб-сайтов на компьютерах разработчиков. Он не предназначен для реального развертывания.

Если вам нужны настраиваемые действия, проект веб-развертывания будет более подходящим для реального развертывания, которое регулярно запускают несколько человек, кроме разработчика, и которое вы хотите создавать с каждой сборкой.

Я бы также посмотрел на три других варианта:

  • PowerShell: Хороший способ сценарий против IIS, настройка веб-сайтов и т. Д. Вы даже можете создавать командлеты из ОО-кода (например, C #), которые ваш сценарий может вызов. Многие профессиональные ИТ-фирмы используют его для развертывания больших веб-сайтов.

  • MSDeploy: Новый инструмент развертывания для веб-сайтов, которые могут реплицировать Vroot на нескольких серверах. Очень хорошо для того, чтобы иметь ваш золотой образ, а затем взрывать его в различных местах.

  • C # приложение: Если вы более опытный , вы всегда можете написать свое собственное приложение, которое копирует файлы (через Process) и использует WMI для настройки IIS. Сложнее, но у тебя полный контроль.

2 голосов
/ 04 ноября 2008

Мы не используем публикацию для развертывания наших веб-проектов, но мы использовали для веб-проектов развертывания. Когда мы перешли на Visual Studio 2008, у нас возникло множество проблем с ними, поэтому мы избавились от них.

Что я могу вам сказать, так это то, что мы смогли заменить функциональность WDP, которую мы использовали, на aspnet_merge.exe. Мы используем комбинацию msbuild и aspnet_merge.exe в скрипте, чтобы выполнить развертывание.

2 голосов
/ 04 ноября 2008

Вы можете использовать пользовательские параметры MSBuild. Фактически вы можете выполнить MSBuild для файла sln, настроенного для публикации в качестве веб-сайта, а затем скопировать предварительно скомпилированные файлы веб-сайта на веб-сервер. Мы делаем это внутренне, используя Cruise Control.net от Thoughtworks.

Файл sln содержит информацию о том, где будет расположен предварительно скомпилированный сайт:

Release.AspNetCompiler.VirtualPath = "/PrecompiledWeb"
Release.AspNetCompiler.PhysicalPath = "..\Web\"
Release.AspNetCompiler.TargetPath = "..\..\PrecompiledWeb\"
Release.AspNetCompiler.Updateable = "true"
Release.AspNetCompiler.ForceOverwrite = "true"
Release.AspNetCompiler.FixedNames = "true"
Release.AspNetCompiler.Debug = "False"
1 голос
/ 04 ноября 2008

Похоже, что вы можете настроить задачу публикации через цель _CopyWebApplication MSBuild. Или вы можете по крайней мере создать пакетный файл, который будет вызывать эту цель, которую вы можете настроить.

Подробнее здесь и здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...