私は Visual Studio 2010 で winforms C# プロジェクトに取り組んでおり、Mono 2.10.8 でコンパイルを開始しました。プロジェクトの Monodevelop 3.0.3.5 へのインポートはうまく機能し、.NET ランタイムが使用されている限り、問題なくコンパイルおよび実行されます。
ただし、Mono ランタイムでコンパイルしようとすると、System.Action と System.Func への (2 つの) 参照を除いてすべてがコンパイルされます - 複数回定義されているというエラー CS0433 が発生します。Mono ライブラリのバージョン 4.0 から使用している System.dll、System.Drawing.dll、および System.Windows.Forms.dll への参照があります。System.core の宣言と他の場所との間で競合が発生しているようです。他の誰かがこの問題を抱えていますか? 私のプロジェクト全体は、これとは別に完全に離れてコンパイルおよび実行されます!
解決した
私はかなりばかげたことをしていたようです (ただし、Monodevelop UI のせいにします!)、それが競合の原因でした。プロジェクトは、.NET Framework 4 クライアント プロファイルをターゲットにするように設定されていました。ソリューションのオプションには変更するオプションがないため、変更できることに気づきませんでしたが、個々のプロジェクトにはあります。含まれているライブラリをルート化するのに何年も費やしたところ、v4.0 mscorlib.dll と v2.0 System.core.dll の間に競合があることがわかりました。v2.0 mscorelib.dll を v4 に置き換えると、正常にコンパイルされました。
その後、ターゲットを Mono / .NET 4 に変更するだけで問題が解決することがわかりました。しかたがない...