web-dev-qa-db-ja.com

.netコアクロスプラットフォームデスクトップアプリ

.netCoreを使用してクロスプラットフォームのデスクトップアプリを開発したいと思います。アプリは、Linux、Mac OS、およびWindowsで実行する必要があります。そのために、コンソールアプリを作成し、設定xmlの行の下に配置する必要がありますか?

<PropertyGroup>
   <RuntimeIdentifiers>win10-x64;osx.10.12-x64;debian.8-x64</RuntimeIdentifiers>
</PropertyGroup>

それで十分でしょうか?もしそうなら、私はすべてのプラットフォームを書き、コンマで区切る必要があります。

win7-x32; win10-x64; .. ..

それが答えではない場合、どうすれば.net Coreでクロスプラットフォームデスクトップアプリを生成できますか?

4
Dilara Albayrak

他の答えがわかりにくいように、.NET Core自体はクロスプラットフォームですが、GUIソリューションを提供していません。コンソール/ターミナルアプリケーション、およびWebアプリケーションは実行できますが、デスクトップアプリケーションは実行できません。

現在のところ、マルチプラットフォームGUIを解決する公式のMicrosoft技術はありません。私が知っている2つは アバロニアEto.Forms です。どちらにも長所と短所があり、どちらもちょっとバグがあります。それが使用できないという意味ではありませんが、それが進化している技術であるという意味で、彼らが悪いことからすぐにあなたの心を吹き飛ばすことを期待しないでください。

あなたが始めるためのガイド:

9
MindingData

私があなたの質問を正しく理解していれば、それは2つの質問に分けることができます。

1)クロスプラットフォームの.netコアアプリを作成する方法

2)クロスプラットフォームの.netコアUIアプリを作成する方法

2番目の質問に答えるには:.netコアとMicrosoftライブラリのみを使用してクロスプラットフォームアプリを作成することはできません。必要なのは、すべてのターゲットプラットフォーム用のバインディングを備えたクロスプラットフォームUIライブラリです。私が最初に得た検索結果はAvalonia https://github.com/AvaloniaUI/Avalonia

すべての選択肢が実験的および/またはベータ版であるように思われるので、それを機能させるのは簡単な作業になるとは思えません。しかし、あなたは確かに私が間違っていることを証明することができます。

幸運を!

3
Peter Klaesson

代わりにelectron.jsを試すことができます。現在、.NETCoreだけでクロスプラットフォームのデスクトップアプリケーションを構築することは非常に困難です。

3
faiaz000

.NETCoreを使用してクロスプラットフォームアプリケーションを作成するための多くのソリューションがあります。

  1. Electron.NET
  2. アバロニア
  3. .。

その方法の詳細については、.NET Core 3のプロジェクトサンプルを提供している専用の本を確認する必要があります ここ 。これにより、アプリに最適なUIが見つかります。

1
TomJackson