在了解如何将ASP.NET 5应用程序发布到Azure Web App时,我遇到了几种发布.NET Web应用程序的方法:
MSDeploy
WebDeploy
Publish-AzureWebsiteProject
dnu publish
互联网上关于这一点的信息非常分散,我无法理解这些不同的“技术”的用途。
它们之间的主要区别是什么?它们应该/何时可以使用?
在了解如何将ASP.NET 5应用程序发布到Azure Web App时,我遇到了几种发布.NET Web应用程序的方法:
MSDeploy
WebDeploy
Publish-AzureWebsiteProject
dnu publish
互联网上关于这一点的信息非常分散,我无法理解这些不同的“技术”的用途。
它们之间的主要区别是什么?它们应该/何时可以使用?
关于MSDeploy vs Web Deploy,正如Rick提到的那样,它们是相同的。实际名称是“Web Deploy”,但.exe名为msdeploy.exe,这就是使用这两个名称的原因。
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
加载发布模块后。或者你可以检查一下 帮助文本 在源头。
Publish-AzureWebsiteProject
是Azure PowerShell命令行工具附带的PowerShell cmdlet。您可以使用它来发布和 ASP.NET 4.5 项目或包到Azure Web Apps(以前称为Azure网站)。我不相信这已经更新以支持ASP.NET 5,但我可能在那里错了。
此处列出的方法多于部署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执行环境)项目。关于这一点有很多很好的信息 这里。