ClickOnce 会被移植到 .NET Core 3 或 .NET 5 以及 WinForms 吗?

Will ClickOnce be ported to .NET Core 3 or .NET 5 as well as WinForms?

既然 Winforms 正在移植到 .NET Core 3,那么将使用什么技术来部署这些应用程序? ClickOnce也会被移植吗?

ClickOnce 使用的许多属性目前都存储在 .csproj 文件中,但这些项目文件在 .NET Framework 和 .NET Core 之间发生了显着变化,因此可能需要更改 Microsoft 的 ClickOnce 代码才能使其正常工作?

微软有没有官方的说法,我在文档中找不到任何内容?

当前状态

看来 ClickOnce 不会 移植到 .NET core 3,但是 .

与 .NET Core 3 相关的原始答案

Microsoft 的 Scott Hunter 对此 in the comments of the .NET Core is the Future of .NET 博客 post 发表了评论。他被问到:

What about ClickOnce? Will that be a supported distribution system for .NET 5 desktop applications?

他给出了回应:

We are going to recommend MSIX for installation and support for MSIX will be added for Windows 7 so it should work on all the platforms you that .NET Core runs on.

有关 MSIX 的更多详细信息,请参阅 Microsoft's MSIX documentation and in it's GitHub repo

其他安装框架也存在,例如Squirrel

没有提及任何关于 .net core 3 winforms 与 Clickonce 一起工作的内容。上面提供的答案有一个 link,其中 Scott Hunter 重定向到 Microsoft 的 MSIX 技术。根据我的阅读,在不使用 Microsoft 商店的情况下部署到最终用户的唯一方法是 "sideload" 你的应用程序,这似乎涉及许多步骤,即使你签署了包,用户似乎也有首先启用侧载。不是我对用户友好的想法。

正如前面的回答所述,Microsoft 不会继续支持 Clickonce 但他们提供了 msix 作为替代。您可以使用 msix 包在组织内部部署 .NET Core 应用程序。我成功地将它用作 Clickonce 的替代品。

您可以查看我的 post 解释如何为 .NET Core 项目创建 msix 包。您甚至可以针对 Windows 7 SP1 及更高版本。

编辑:Microsoft 将继续支持 .NET 5 中的 ClickOnce。

所有其他答案都回答了 .NET Core 3 的问题,但是 .NET 5 正在改变。Microsoft 提供对 ClickOnce 的支持,如本 GitHub 问题(2020 年 7 月 20 日):https://github.com/dotnet/deployment-tools/issues/9

这不是完全支持(ApplicationDeployment class 将不可用)但这是一个开始。

看起来它将在 RC2 中可用 - https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-8/

更新状态:

Microsoft 宣布推出 .NET 5.0,

一些新发布的功能还包括 ClickOnce:

"It’s now supported for .NET Core 3.1 and .NET 5.0 Windows apps."

你可以看看Here