http://www.mono-project.com で Mono.NET について読んだことがありますか?
これにより、Microsoft の実装と多少の違いがある Linux 用の .NET アプリを作成できます。ワインは .NET コンポーネントのいずれにも対応しないと思います。
前にドキュメントを読んでおけば、すぐに始められます。
PS:これは mono と .NET の間の互換性リストも提供します。 http://www.mono-project.com/互換性と MoMA (モノ移行アナライザー) は、作成済みの .NET アプリをスキャンして、Linux に展開するための互換性があるかどうかを確認するツールです。
この投稿では、このスレッドで他の人から学んだすべての情報を短縮してまとめました。
<オール>Linux 用の .NET のオープン ソース実装は Mono と呼ばれます .
互換性は十分に文書化されています (以下のリンクを参照)。 Mono は、LINQ、スレッド、その他の複雑な機能をサポートしています。
InteropServices もサポートしています。 Linux ライブラリで DllImport を使用できます (!)、libc.so
のように 例えば。
Mono は Android と iOS をサポートできます (Linux ベースですよね?)
Mono 互換性分析ツールがあります MoMA (Mono Migration Analyzer) と呼ばれる
Mono Migration Analyzer (MoMA) ツールは、.Net アプリケーションを Mono に移植する際に発生する可能性のある問題を特定するのに役立ちます。これは、Mono プロジェクトでまだサポートされていないプラットフォーム固有の呼び出し (P/Invoke) と領域を特定するのに役立ちます。
便利なリンク:
Mono - ホームページ
Mono - ドキュメントのあるページ
Mono - 互換性ページ
MoMA - Mono Migration Analysis ページ
Mono を使用して Windows または Linux で実行される .net アプリケーションがいくつかあります。
必要に応じて VisualStudio で開発できます。Mono 開発環境を使用する必要はありません。 Linux で .net アプリケーションを実行するために必要なのは、ランタイムの mono ライブラリだけです。
mono は .net 2.0 とほぼ 100% 互換性があるため、net 2.0 ターゲットを使用してこれらのアプリを VisualStudio でコンパイルします。 Mono は、後の .net バージョンの API も実装していますが、すべてではなく、完全でもありません。 2.0 よりも新しいバージョンの機能を使用する場合は、これらがサポートされているかどうかを確認するか、Mono 互換性分析ツールを使用する必要があります。 Visual Studio の代わりに Mono 開発を使用することもできます。私の前任者はそうしていました。結果はほとんど同じで、代わりに Visual Studio を使用することを好みます。
大きな問題は見つかりませんでした。アプリは比較的複雑で、高度にマルチスレッド化され、非同期 I/O、WinForms、ソケット、シリアル ポートなどです。
一部のアプリは、MS .net では利用できない .net ライブラリを使用していましたが、これらはすべて Windows にもインストールできるため、これらのアプリを Windows で実行しても問題はありません。
お役に立てば幸いです。