1

既に作成されている 1 つのアセンブリとStatic.dll、実行時に作成する動的アセンブリがありますDynamicDynamicから新しいタイプを作成するための IL コードを作成しますStatic.dll。がDynamic作成されると (正常に保存されます)、実行可能ファイルが実行されると、アセンブリStatic.dllタイプを読み込めないため、エラーが発生します。Dynamicexe出力でこのdllが見つからないため(または少なくともこれは私の推測です)、これが起こっていると思います。

Static.dll誰かが結果の実行可能出力を実行したときにDynamic、参照されている型を見つけることができるように、この参照に追加するにはどうすればよいでしょうか?

については知ってAssembly.Load()いますが、これだけでは何も変わりません。または、少なくとも、実行時に型を使用する必要はなく、実行可能ファイルを実行するときに型を使用する必要があるため、これが何をもたらすのかわかりませんDynamic

最後に、私Static.dllは.動的アセンブリ)。基本的に、動的アセンブリに、mscorlib の場所をマニフェストに保存させたいと考えています。.assembly extern mscorlibStatic

ありがとう

4

1 に答える 1

2

Static.dll誰かが結果の実行可能出力を実行したときにDynamic、参照されている型を見つけることができるように、この参照に追加するにはどうすればよいでしょうか?

参照は自動的に追加されます。アセンブリを見つけるために、動的アセンブリの実行時に通常のアセンブリ プローブ ルールが適用されることに注意してください。次のいずれかを行う必要があります:

  • static.dll を dynamic.dll と一緒に出荷する
  • static.dll を GAC に配置します (ただし、これは行わないでください!)
  • カスタム AppDomain で dynamic.dll を実行し、static.dll を検出できるようにするカスタム プローブ パス構成を使用します。
  • AppDomain.AssemblyResolve を処理して static.dll を提供する
  • ILMerge のようなものを使用して static.dll と dynamic.dll を融合します
于 2012-07-28T07:09:39.420 に答える