.net core 跨平台桌面应用
Posted
技术标签:
【中文标题】.net core 跨平台桌面应用【英文标题】:.net core cross platform desktop app 【发布时间】:2018-02-23 14:32:54 【问题描述】:我想使用 .net Core 开发一个跨平台的桌面应用程序。该应用程序需要在 linux、mac os 和 windows 上执行。为此,我应该创建一个控制台应用程序并将下面的行放在设置 xml 中吗?
<PropertyGroup>
<RuntimeIdentifiers>win10-x64;osx.10.12-x64;debian.8-x64</RuntimeIdentifiers>
</PropertyGroup>
够了吗?如果是这样,我应该写所有平台并用逗号分隔,例如
win7-x32;win10-x64;...
如果不是答案,如何使用 .net Core 生成跨平台桌面应用程序?
【问题讨论】:
你用的是什么版本的dot net core? .NET Core 2.0 版本 看看这个帖子然后***.com/questions/44074121/… 谢谢,我看过了。当我为 linux 或 mac 发布时,输出会是什么? blog.lextudio.com/… .NET Core 不支持。您必须使用特定的 UI 框架和平台相关的项目类型。 【参考方案1】:正如另一个答案所没有的,.NET Core 本身是跨平台的,但它不提供任何 GUI 解决方案。您可以运行控制台/终端应用程序以及 Web 应用程序,但不能运行桌面应用程序。
截至目前,还没有解决多平台 GUI 问题的官方 Microsoft 技术。我知道的两个是Avalonia 和Eto.Forms。两者都有其优点和缺点,并且两者都有点越野车。不是说它无法使用,而是说它正在发展技术,不要指望它们会让你大吃一惊。
入门指南:
Avalonia - http://avaloniaui.net/guides/quickstart Eto.Forms - https://dotnetcoretutorials.com/2018/03/19/cross-platform-winforms-kinda/【讨论】:
我认为微软在推动最重要的net core sutff的开发方面还有很多工作要做。也许将来我们会从他们那里得到一个跨平台的 gui 解决方案。太好了! .NET MAUI 是 .NET 6 中的新功能。它提供了所有这些功能。 devblogs.microsoft.com/dotnet/announcing-net-maui-preview-6【参考方案2】:1) .NET core 中的控制台应用程序已经是跨平台的。
2) 对于那些使用 GUI 的人,.NET core 终于有了一个微软官方支持的跨平台 GUI 选项.NET MAUI
这建立在与 Xamarian Forms 相同的 API 之上。
Official .NET MAUI Github Repo
【讨论】:
MAUI 不支持 Linux,这是问题中的要求。【参考方案3】:如果我正确理解您的问题,可以分为两个问题。
1) 如何创建一个跨平台的.net core app
2) 如何创建一个跨平台的.net core UI app
回答第二 (2) 个问题:仅使用 .net core 和 microsoft 库无法创建跨平台应用程序。您需要的是一个跨平台 UI 库,可以绑定到您的所有目标平台。我得到的第一个搜索结果是 Avalonia https://github.com/AvaloniaUI/Avalonia
我怀疑让它工作起来不是一件容易的事,因为所有替代方案似乎都是实验性的和/或测试版。但你当然可以证明我错了。
祝你好运!
【讨论】:
谢谢。实际上我不知道具体要做什么,我需要构建一个桌面应用程序(带有一个简单的 ui 并连接一个 Web 服务)并使该应用程序在所有操作系统中工作:/ .NET Core 目前对于跨平台桌面应用来说是错误的技术。在这一点上,像 Avalonia 这样的东西是实验性的/不稳定的。您最好选择 .NET Framework(在 Windows 上)和 Mono(Linux/Mac)。【参考方案4】:您可以尝试使用 electron.js。目前仅使用 .NET Core 构建跨平台桌面应用程序相当困难
【讨论】:
Electron 是最糟糕的选择,出于各种原因,如果您想要“制作简单但性能极差的应用程序”以外的任何东西。【参考方案5】:您有许多使用 .NET Core 制作跨平台应用程序的解决方案:
-
Electron.NET
阿瓦隆尼亚
...
如果您想了解有关如何执行此操作的详细信息,您应该查看提供 .NET Core 3 项目示例的专门书籍Here。这样您就可以找到最适合您应用的 UI。
【讨论】:
以上是关于.net core 跨平台桌面应用的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 .NET Core 中制作桌面 GUI 应用程序?
将 .NET Core 桌面应用程序连接到 Azure SQL Server 的最佳方式是啥
如何使用 XamlIslands 和桌面桥打包 WPF (.NET Core) 应用程序?