Подтвердить что ты не робот

MSDeploy vs WebDeploy vs Публикация-AzureWebsiteProject vs dnu publish

Узнав о том, как опубликовать наше приложение ASP.NET 5 в Azure Web App, я столкнулся с несколькими способами публикации веб-приложений .NET:

  • MSDeploy
  • WebDeploy
  • Publish-AzureWebsiteProject
  • dnu publish

Информация в Интернете об этом довольно разбросана, и я не могу окунуться в голову, для чего предназначены эти разные "методы".

Каковы основные различия между ними и когда они должны/могут использоваться?

4b9b3361

Ответ 1

MSDeploy vs Web Deploy

Относительно MSDeploy vs Web Deploy, как сказал Рик, они - одно и то же. Фактическое имя "Web Deploy", но .exe называется msdeploy.exe, поэтому имена обоих имен используются.

Публикация DNU

dnu publish - это кросс-платформенная утилита, предоставляемая DNX/ASP.NET 5, которая может быть использована для публикации DNX/ASP.NET 5 в папку.

Позвольте мне объяснить, как это связано с поддержкой, которую вы видите в Visual Studio 2015. В VS2015 основной задачей диалога публикации является сохранение настроек в профиле публикации (.pubxml file). Visual Studio сначала вызывает dnu publish, чтобы опубликовать приложение в локальной папке. Затем свойства (все они, даже пользовательские, которые вы добавляете) передаются в файл profilename.ps1 в качестве параметра -publishProperties. Путь к папке, в которой находятся результаты dnu publish, передается через -packOutput. В этот момент управление передается в файл .ps1, VS не знает фактических внутренних публикаций. Вы можете настроить содержимое .ps1, и пока параметры остаются неизменными, он должен работать.

PowerShell script и модуль, который он потребляет, являются OSS в https://github.com/aspnet/vsweb-publish. По умолчанию script, созданный VS, находится в https://github.com/aspnet/vsweb-publish/blob/master/samples/default-publish.ps1. Примечание: этот модуль в настоящее время работает только для ASP.NET 5. Если вас интересуют предыдущие версии, дайте мне знать, и мы можем рассмотреть возможность добавления поддержки.

Если вам интересно узнать больше об этом script, я рекомендую get-help Publish-AspNet после загрузки модуля публикации. Или вы можете проверить текст справки в источнике.

Publish-AzureWebsiteProject

Publish-AzureWebsiteProject - это командлет PowerShell, поставляемый с инструментами командной строки Azure PowerShell. Вы можете использовать это для публикации и проекта или пакета ASP.NET 4.5 для Azure Web Apps (ранее называвшихся сайтами Azure). Я не верю, что это было обновлено для поддержки ASP.NET 5, но я мог ошибаться там.

Ответ 2

Для развертывания веб-приложений существует больше способов, чем указано здесь. Существует очень хорошая документация здесь, в которой обсуждаются варианты развертывания веб-приложений. Например, FTP, Git, Visual Studio, CLI и т.д.

Из вашего списка, однако, Web Deploy и MS Deploy (msdeploy.exe) являются одинаковыми и, возможно, наиболее распространенными. Web Deploy - предпочтительный термин, и вы увидите, что он используется в оснастке. Например, если вы щелкните правой кнопкой мыши проект ASP.NET и выберите "Развертывание", параметр "Развертывание по умолчанию" является стандартным. Опять же, есть другие, и приведенная выше ссылка объясняет их.

Publish-AzureWebsiteProject - один из многих автоматизированных способов создания и/или развертывания вашего веб-проекта (например, кода/приложения) с помощью PowerShell, и он использует метод Web Deploy.

DNU (.NET Development Utility) используется для создания, упаковки и развертывания проектов DNX (.NET Execution Environment). Там много хорошей информации об этом здесь.