MSDeploy vs WebDeploy vs Publish-AzureWebsiteProject vs dnu publish

Dav*_*New 11 azure msdeploy webdeploy azure-web-sites asp.net-core

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

  • MSDeploy
  • WebDeploy
  • Publish-AzureWebsiteProject
  • dnu publish

互联网上关于这一点的信息非常分散,我无法理解这些不同的"技术"的用途.

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

Ric*_*ney 6

此处列出的方法多于部署Web应用程序.有很好的文档在这里,讨论部署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执行环境)项目.有很多关于这个良好的信息在这里.


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

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

发布 - AzureWebsiteProject

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