【问题标题】:MSDeploy vs WebDeploy vs Publish-AzureWebsiteProject vs dnu publish [closed]MSDeploy vs WebDeploy vs Publish-AzureWebsiteProject vs dnu publish [关闭]
【发布时间】:2015-12-13 21:59:53
【问题描述】:

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

  • MSDeploy
  • WebDeploy
  • Publish-AzureWebsiteProject
  • dnu publish

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

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

【问题讨论】:

  • 您的问题已在审核中使用,现在在meta 上进行讨论。我们能否找到一种方法来减少基于列表/广泛/意见的帖子?
  • @rene:您能否就我如何改写我的问题提出建议?我宁愿问这些的目的是什么?
  • 一种方法可能是选择一个选项,例如:publish-azurewebsite 项目,然后声称它不适用于您的 asp.net-5 站点,您尝试使用 msdeploy 但缺少 vs -ide 支持(我不知道这是否属实,但我正在尝试在此处生成选项)。那么问题可能是:如何使我的发布工作流程更方便。当前的答案仍然适合这种情况。

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


【解决方案1】:

部署 Web 应用程序的方法远不止此处列出的方法。有很好的文档here 讨论了部署 Web 应用程序的选项。例如 FTP、Git、Visual Studio、CLI 等...

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

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

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

【讨论】:

  • 大多数发布 DNX 应用程序的示例都使用 MS Deploy。他们为什么不使用 DNU 发布?为什么我们不只是使用 Publish-AzureWebsiteProject?还是这实际上调用了 DNU 内部发布? Web 部署与右键单击项目并选择发布相同吗? MSBuild 上的 FileSystemPublish 目标呢?这是否转化为上述任何一种?
  • Web 部署是最常见的,我怀疑这就是为什么你会看到很多这样的例子。 MSBuild 用于构建 Web 应用程序项目,但也可以在命令行表单中用于自动发布构建输出。顺便说一句,我对原始答案进行了一些编辑,以解决您提出的其他问题。
【解决方案2】:

MSDeploy 与 Web 部署

关于 MSDeploy 与 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 将应用发布到本地文件夹。然后属性(所有属性,甚至是您添加的自定义属性)作为-publishProperties 参数传递到profilename.ps1 文件。 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 应用程序(以前称为 Azure 网站)。我不相信这已经更新为支持 ASP.NET 5,但我可能错了。

【讨论】:

    猜你喜欢
    • 2021-08-26
    • 2021-10-12
    • 1970-01-01
    • 2015-07-30
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    相关资源
    最近更新 更多