Mono
Mono は C# と CLR のオープンソースでクロスプラットフォームの実装で Microsoft.NET とバイナリ互換があります。
インストール
Mono は mono パッケージでインストールすることができます。
VisualBasic.Net のサポートが必要な場合は、mono-basicAUR パッケージで VisualBasic.Net インタプリタをインストールしてください。
MonoDevelop はプロジェクトの実行時に xterm を呼び出します。コンソールアプリケーションを作成するときは、インストールしてください。
Mono アプリケーションの実行
Mono バイナリは mono
を手動で呼び出すことで実行できます:
$ mono programsname.exe
ネイティブバイナリと同じように、Mono バイナリを直接実行することも可能です:
$ chmod 755 exefile.exe $ ./exefile.exe
Mono のテスト
新しいファイルを作成:
test.cs
using System; public class Test { public static void Main(string[] args) { Console.WriteLine("Hello World!"); } }
そして実行:
$ mcs test.cs $ mono test.exe Hello world!
開発
Mono/C# の開発を始めるのはとても簡単です。monodevelop-gitAUR パッケージで MonoDevelop IDE をインストールしましょう。
もしくは riderAUR IDE をインストールして使うこともできます。
API ドキュメントブラウザやテスト・開発ツールが欲しい場合は mono-tools をインストールしてください。
トラブルシューティング
cannot execute "path/to/your/binary" file name has not been set
MonoDevelop はプロジェクトの実行時に xterm を起動するので xterm をインストールしてください。
Mono バイナリを直接実行しようとした時にエラー: "cannot execute binary file"
Mono の binfmt_misc ハンドラがセットアップされていません。詳しくは Mono Project ウェブサイト で説明されています。
これを修正するには、systemd-binfmt
サービスを再起動してください。
TLS ハンドシェイク (もしくは同じような証明書の) エラー
mozroots --import --ask-remove
を実行して mono の証明書をアップデートしてみてください。mozroots
は mono パッケージに含まれています。
F# のビルド時にエラー: "System.TypeInitializationException: The type initializer for 'System.Console' threw an exception"
mcs で fsharp をビルドしようとしたときに発生するバグです。export TERM=xterm
を使うことで回避できます。詳しくは [1] を参照。