私のプログラムにX.dll
というアセンブリをロードしています。X.dll
は何でも構いません。クラスX.A_Class
のインスタンスを作成します。しかし、アセンブリX
にアセンブリが必要な場合、A
,B
、C
、D
の場合はどうなりますか?
これはどのように検出されますか?
変数に変数を格納しないでロードするにはどうすればよいですか?アセンブリに必要なアセンブリを入手しますか?
答えて
@alexnとしてAssembly.GetReferencedAssembliesを使用してから、Assembly.Loadを使用して読み込むことができます。代わりに、AppDomain.CurrentDomain.AssemblyResolveをフックしてオンデマンドでロードすることもできます。
反復処理が必要な場合は、推移的な依存関係を取得するために再帰的に実行する必要があります。
アセンブリの参照アセンブリは、Assembly.GetReferencedAssembliesメソッドを使用して取得できます。
通常、改訂されたアセンブリは自動的に読み込まれます(リンクの開始についてはHow is an assembly resolved in .NET?などの関連メッセージを参照)。
標準の場所(GACやアプリケーションのルートフォルダなど)からアセンブリを読み込んでいる場合は、参照先のアセンブリをロードするためのセットアップパス(「アセンブリの既定のロードパス」を検索します - つまり、アプリケーション設定ファイル-)他の回答に記載されているようにAssemblyResloveイベントから自分自身をロードしてください。で
ロードアセンブリの問題をデバッグを開始するための最良の方法が読まれるブログ:http://blogs.msdn.com/b/suzcook/archive/2003/05/29/57120.aspx(および関連記事http://blogs.msdn.com/b/suzcook/archive/tags/loader+debugging+advice/)
EDIT:フォルダ - >「ルートフォルダ」+リンク設定ファイルトピックへのパスを探査するため。
私はあなたの答えによって混乱します。私はアプリケーションのフォルダ内のフォルダからアセンブリを動的にロードしています。 – Vercas
それでは、あなたはブログのデバッグに従ってきましたが、CLRがこれを徹底的に探した場所を知りませんでしたか? –
- 1. 実際には利用できないGACアセンブリが必要なアセンブリを動的にロードしますか?
- 2. C#CompileAssemblyFromSource、必要な参照アセンブリを追加しますか?
- 3. .NETアセンブリ差分/比較ツール - 何が入手できますか?
- 4. interopアセンブリに署名する必要がありますか?
- 5. Syncfusion.OcrProcessor.Base.dllアセンブリ参照が必要です
- 6. 強力な名前のアセンブリにILを注入しますか?
- 7. VB.NETでDLLライブラリをインポートするために必要なアセンブリ
- 8. コピー文字列手順アセンブリ
- 9. regbankを使用したアセンブリ手順
- 10. アセンブリの輸入
- 11. アセンブリの詳細情報はどのように入手できますか?
- 12. なぜアセンブリを2回参照する必要がありますか?
- 13. アプリケーションで必要なアセンブリの一覧を取得する
- 14. .netアセンブリで必要なアクセス許可を分析する方法
- 15. MVC4にはどのアセンブリが必要ですか?
- 16. 新しいAppdomainにアセンブリをロードする、完全に信頼できる親アセンブリが必要
- 17. アセンブリx86:Ackermann関数をプログラムする必要があります
- 18. サーバーに必要なアセンブリがロードされる - Office 2010 Primary Interop
- 19. T4テンプレートに必要なアセンブリのための鶏と卵
- 20. 分割手段/アセンブリの違いに
- 21. スタックを介してアセンブリを渡すアセンブリ
- 22. Mavenアセンブリ:アセンブリ
- 23. 参照アセンブリを強制的にロードする必要がありますか?
- 24. アセンブリで挿入ソートをどのようにしますか?
- 25. アセンブリ - 手順プロローグを理解するのに役立ちます
- 26. web.configでReportViewerアセンブリを手動で追加します。
- 27. アセンブリマネージャからアセンブリをロードする必要があるのはなぜですか?また、NuGetを使用してアセンブリを追加するだけです。
- 28. "System.Web.HttpContext"アセンブリを "System.Web"アセンブリからロードできませんでした
- 29. C#アセンブリ、アセンブリ内には何がありますか?
- 30. アセンブリ(.exeまたは.dll)が共有アセンブリと呼ばれる主な要素
CLRは既にこれを検出できます。必要なものだけを読み込みます。あなたは助ける必要はありません。実際に助けることは有害かもしれません。 –
アセンブリをファイルから動的にロードするときは使用しません。 – Vercas