2009-09-30 22 views
6

実行時にC#コードをコンパイルするシステムがあります。私は、生成されたアセンブリをシステム自体にリンクさせたいと思います。ここで私が使用していますいくつかのサンプルコードがあります:実行時にC#コード拡張をコンパイル

CSharpCodeProvider provider = new CSharpCodeProvider(new Dictionary<String, String> { { "CompilerVersion", "v3.5" } }); 
CompilerParameters compilerparams = new CompilerParameters(); 
compilerparams.GenerateExecutable = false; 
compilerparams.GenerateInMemory = true; 
foreach (string name in linkedreferences) 
    compilerparams.ReferencedAssemblies.Add(name + ".dll"); 
Assembly result = provider.CompileAssemblyFromFile(compilerparams, filename); 

私がやりたい何も同様にメインコンパイラプログラムへの参照を追加しているので、新しくコンパイルした拡張機能は、コンパイラプログラムからライブラリルーチンを使用することができます。

Assembly entryasm = Assembly.GetEntryAssembly(); 

質問:これは、コンパイルされたアセンブリ結果にentryasmへの参照を追加するにはどうすればよいですか?

答えて

3

これを試しましたか?それは正確だった

compilerparams.ReferencedAssemblies.Add(entryasm.Location); 
+0

!ありがとう。 – Whiteknight

関連する問題