2

私の AppDomain には動的アセンブリがほとんどありません。codeDom.CompileAssemblyFromSource を別の新しいアセンブリにコンパイルしようとすると、これらの動的アセンブリを ReferencedAssemblies に追加する方法がわかりません。

foreach (AppDomain.CurrentDomain.GetAssemblies() 内の var アセンブリ)
{
         compilerParameters.ReferencedAssemblies.Add(assembly.Location);
}

動的アセンブリに場所がないため、失敗しました。

前もって感謝します。

PS: 私は実際に ASP.Net MVC 3 の新しい Razor テンプレート エンジンを IronPython で使用しようとしています。

4

2 に答える 2

0

テストではassembly.FullNameなく、代わりに使用してみてくださいassembly.Location

于 2010-10-28T08:03:00.670 に答える
0

私は同様の問題を抱えていましたが、このブログ投稿: http://geekswithblogs.net/gyoung/archive/2006/04/27/76533.aspx で、これを行う方法はないと確信しました。ただし、これは比較的古い投稿であり、.net 4 にこれを可能にする何か新しいものがある場合は、それについて知っておくとよいでしょう。

編集:

これは不可能であり、.net 4 では不可能であることを確認できます。CSharpCodeGenerator クラスは csc.exe を使用してコードをコンパイルしているため、次のコードを使用して、参照されたアセンブリをパラメータとしてコンパイラに追加します。

foreach (string current in options.ReferencedAssemblies)
{
    stringBuilder.Append("/R:");
    stringBuilder.Append("\"");
    stringBuilder.Append(current);
    stringBuilder.Append("\"");
    stringBuilder.Append(" ");
}

ところで:同じ問題についてSOに別の投稿があります:

ディスクではなくメモリから CompilerParameters ReferencedAssemblies にアセンブリを供給しますか?

C# では、あるインメモリ アセンブリから別のインメモリ アセンブリの型をどのように参照しますか?

于 2011-12-23T20:27:40.903 に答える