面倒そうだし、できるかもわからないので、今回はここまでで断念する。
前回
- http://ytyaru.hatenablog.com/entry/2020/02/18/000000
- http://ytyaru.hatenablog.com/entry/2020/02/19/000000
前回のエラーから察するにCodeEditorを正しくビルドできていなかった模様。
今回
大本のEto.Toolkitを見てみると、以下のようなプロジェクトがある。
おそらく、以下のような依存関係になっている。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch(9.0) 2018-06-27
- Mono 5.16.0
- MonoDevelop 7.6 build 711
- Eto.Forms 2.4.1 拡張機能, NuGetパッケージ
- .NET Core 2.2, MonoDevelop参照方法
手順
前々回のプロジェクトを参照して、新しいプロジェクトを追加してみる。Eto.CodeEditor.Wpf
1. プロジェクト作成
- 前回のソリューション
Eto.CodeEditor.sln
をMonoDevelopで開く - ソリューションを右クリックする
追加
→新しいプロジェクトを追加
.NET Core
→ライブラリ
→.NET Standard ライブラリ
対象のフレームワーク
を1.6
にする(2.0にするとなぜか次のダイアログで「作成」が反応しなくなる)
- 名前などを適当に入力する (
Eto.CodeEditor.Wpf
) - プロジェクトが作成される
2. .NET Standard バージョン指定
- ソリューションウインドウからプロジェクトを右クリックする
オプション
をクリックする
ビルド
→ターゲットフレームワーク
から.NET Standard 2.0
を選ぶ
- ソリューションウインドウのSDKの
.NET Standard
が、2.0.3
になっているのを確認する
3. NuGetでEto.Formsを追加
- メニュー→
プロジェクト
→NuGet パッケージの追加
パッケージを追加
ダイアログから欲しいパッケージを探す
- 検索窓に
Eto.Forms
と入力して絞り込む パッケージを追加
ボタンをクリックする同意する
4. ソースコード
Eto.Toolkit
ソリューション内にあるEto.CodeEditor.Wpf
プロジェクトの.editorconfig
とCodeEditorHandler.cs
をコピペする。
5. ビルド
実行ボタンを押してビルドするとエラーが12個も出た。
[assembly: ExportHandler(typeof(CodeEditor), typeof(CodeEditorHandler))]
みたいなコードの意味がわからないScintillaNET
の名前があるので、そのプロジェクトに依存していると思われる
調査
ScintillaNET
ScintillaNETは ... Scintillaを.NET用にwrapしたもの
Scintilla
NuGetで入れてみる
- メニュー→
プロジェクト
→NuGet パッケージの追加
パッケージを追加
ダイアログから欲しいパッケージを探す
- 検索窓に
ScintillaNET
と入力して絞り込む jacobslusser.ScintillaNET
を選択しパッケージを追加
ボタンをクリックする
ビルドするとエラーが6個まで減った。
所感
どう解決すればいいのか、そもそも解決できるか。何もわからないのでやめる。それより直接GtkSourceView
を参照できないか試したい。