MSDeploy vs WebDeploy vs Publish-AzureWebsiteProject vs dnu publish

时间:2015-09-17 05:58:09

标签: azure azure-web-sites asp.net-core msdeploy webdeploy

在了解如何将ASP.NET 5应用程序发布到Azure Web App时,我遇到了几种发布.NET Web应用程序的方法:

  • MSDeploy
  • WebDeploy
  • Publish-AzureWebsiteProject
  • dnu publish

互联网上关于此的信息非常分散,我无法理解这些不同的“技术”的用途。

它们之间的主要区别是什么?应该/何时可以使用它们?

2 个答案:

答案 0 :(得分:6)

此处列出的方法多于部署Web应用程序。有非常好的文档here,讨论了部署Web应用程序的选项。例如,FTP,Git,Visual Studio,CLI等......

从您的列表中,Web Deploy和MS Deploy(msdeploy.exe)是相同的,可以说是最常见的。 Web Deploy是首选术语,您将看到它在工具中使用。例如,如果右键单击ASP.NET项目并选择“部署”,则Web Deploy是默认选项。同样,还有其他的,上面的链接解释了它们。

Publish-AzureWebsiteProject是使用PowerShell构建和/或部署Web项目(即代码/应用程序)的众多自动方式之一,它使用Web Deploy方法。

DNU(.NET开发实用程序)用于构建,打包和部署DNX(.NET执行环境)项目。关于这个here,有很多很好的信息。

答案 1 :(得分:5)

MSDeploy与Web部署

关于MSDeploy vs Web Deploy,正如Rick提到的那样,它们是相同的。实际名称是“Web Deploy”,但.exe名为msdeploy.exe,这就是使用这两个名称的原因。

DNU发布

dnu publish是DNX / ASP.NET 5提供的跨平台实用程序,可用于将DNX / ASP.NET 5应用程序发布到文件夹。

让我解释一下这与您在Visual Studio 2015中看到的支持有何关联。在VS2015中,发布对话框的主要职责是在发布配置文件(.pubxml文件)中保留设置。 Visual Studio首先调用dnu publish将应用程序发布到本地文件夹。然后,属性(所有这些属性,甚至是您添加的自定义属性)都将作为profilename.ps1参数传递给-publishProperties文件。通过dnu publish传入-packOutput结果所在的文件夹的路径。此时控制转移到.ps1文件,VS不知道实际的发布内部。您可以删除.ps1的内容,只要参数保持不变即可。

PowerShell脚本及其使用的模块是https://github.com/aspnet/vsweb-publish的OSS。 VS创建的默认脚本位于https://github.com/aspnet/vsweb-publish/blob/master/samples/default-publish.ps1。注意:此模块目前仅适用于ASP.NET 5.如果您对以前的版本感兴趣,请告诉我们,我们可以考虑添加支持。

如果您有兴趣了解有关该脚本的更多信息,我建议在加载发布模块后get-help Publish-AspNet。或者您可以查看来源中的help text

发布 - AzureWebsiteProject

Publish-AzureWebsiteProject是Azure PowerShell命令行工具附带的PowerShell cmdlet。您可以使用它来发布和 ASP.NET 4.5 项目或包到Azure Web Apps(以前命名为Azure Websites )。我不相信这已经更新以支持ASP.NET 5,但我可能在那里错了。