アプリケーションの組み込みスクリプト環境に mono を使用しています。スクリプトのコンパイルには、Microsoft.CSharp.CSharpCodeProvider を使用します。現在、System.Numerics のような 4.0 または 4.5 の機能が必要です。ただし、コンパイラ オプションで System.Numerics.dll を参照すると、エラーが発生します。
(0,0): エラー CS0006: メタデータ ファイル `System.Numerics.dll' が見つかりませんでした
プロバイダーのアセンブリの場所は 2.0.0.0 gac を指しているので、これが失敗してもそれほど驚くことではありません。ただし、mono-2.11.4 と v4.0 および v4.5 プロファイルが配置されているため、プロバイダーが必要なアセンブリを見つけられないのはなぜなのか、または要求どおりに v4.0 を提供しているのか疑問に思います。
var provider_options = new Dictionary<string,string>();
provider_options.Add("CompilerVersion", "v4.0");
CodeDomProvider provider = new CSharpCodeProvider(provider_options);
CompilerParameters cparams = new CompilerParameters ();
cparams.GenerateExecutable = true;
cparams.OutputAssembly = Path.ChangeExtension(rFileNames[0],".exe");
cparams.ReferencedAssemblies.Add( "System.dll" );
cparams.ReferencedAssemblies.Add( "System.Windows.Forms.dll" );
cparams.ReferencedAssemblies.Add( "System.Drawing.dll" );
cparams.ReferencedAssemblies.Add( "Mono.Debugger.Soft.dll" );
cparams.ReferencedAssemblies.Add( "System.Numerics.dll" );