問題タブ [assemblyresolve]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly-loading - AssemblyResolve イベントを使用してアセンブリを動的にロードするとランダムに失敗する
次の KB 記事の例に従って、AssemblyResolve イベントを実装して、アセンブリをロードする正しいフォルダーを .Net に指定します: http://support.microsoft.com/kb/837908
これが現在の実装です。
多くの場合、並行して実行され、ほとんど同じアセンブリを使用するすべてのバッチ プロシージャでこれを使用します。
定期的にバッチがクラッシュし、次の痕跡が残ります。
[26/04/2013 12:35:01] AssemblyLoader: アセンブリ 'COMPANY.DistributieOrderFacade.dll' が 'C:\COMPANY_Batch\MDS\Executables\MDS\FACADE\COMPANY.DistributieOrderFacade.dll' で見つかりました
[26/04/2013 12:35:01] AssemblyLoader: アセンブリ 'COMPANY.DOCUMENTCENTERDOCS.dll' が 'C:\COMPANY_Batch\MDS\Executables\MDS\CLIENT\COMPANY.DOCUMENTCENTERDOCS.dll' で見つかりました
26/04/2013 12:35:01: COMPANYDocument を作成... キュー:\rug.adroot\dfsroot\mds\Data\queue_new\ 26/04/2013 12:35:01
ファイルまたはアセンブリ 'COMPANY.DistributieOrderBRDA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。一般的な例外 (HRESULT からの例外: 0x80131500)
エラーのアセンブリは、AssemblyLoader が検索するフォルダーの 1 つにあります。手順をもう一度実行すると、成功します。
2 つのコンソール アプリでこのアセンブリ ローダーを使用し、同じ dll に同時にアクセスして、dll がロックされているかどうかを確認しようとしましたが、これは問題ではないようです。
また、これはバッチの 1 つからの単なるログであることにも言及する必要があります。他にもありますが、同じアセンブリがロードされていないことはめったにありません。
次にどこから解決策を探し始めればよいかわかりません。
c# - AssemblyResolve イベントを処理した後も例外 FileNotFound が発生する
-イベントを処理しAssemblyResolve
ましたが、まだFileNotFoundException
. 型初期化子でイベントをサブスクライブし、 -methodAssembly.LoadFrom
でメソッドを呼び出します。Main
c# - C# Outlook 2007 アドイン + 組み込みアセンブリ
Outlook アドインを作成していて、依存する DLL を を使用して埋め込むことができるかどうかを確認したいのですが AppDomain.CurrentDomain.AssemblyResolve
、これをどこに追加すれば実際に呼び出されるか起動されるかわかりません :(
アセンブリをロードできるようにするには、どのメソッド内でイベント ハンドラーをサブスクライブする必要がありますか?
ヘルプ!
c# - AssemblyResolve イベント ハンドラーと CodeBase ポリシーの比較
C# アセンブリからアセンブリにアクセスしようとする場合、いくつかの方法があります。
AssemblyResolve
イベント ハンドラー を実装するhttp://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve(v=vs.110).aspx.config ファイルのプロパティを使用して、アセンブリ要求をリダイレクトします
(1) のイベントの ResolveEventArgs のプロパティについてhttp://msdn.microsoft.com/en-us/library/system.resolveeventargs.name(v=vs.110).aspxに記載されているように、 「名前はポリシーが適用される前のアセンブリ名。"
ただし、これらのメソッドの順序に関するドキュメントは見つかりませんでした。AssemblyResolve
リダイレクトがプローブされる前にイベント ハンドラーが呼び出されますか? それとも逆?
第二に、何らかの方法でポリシーをに適用する可能性はありResolveEventArgs
ますか? たとえば、リダイレクトされたバージョン範囲を .config ファイルから要求するには?
.net - VSTO AssemblyResolve の問題
Word 用の VSTO プラグインを開発していますが、アドインの最初のエントリ ポイントが AddIn_Startup ハンドラであるという問題があります。問題は、必要なアセンブリを見つけるために実装した AssemblyResolve ハンドラーに対して、このハンドラーの呼び出しが遅すぎることです。
Addins.Designer.cs クラスの AppDomain.CurrentDomain.AssemblyResolve イベントにハンドラーを割り当てることで問題を解決しましたが、ご存知のように、このコードは自動生成されます。
AddIn_Startup ハンドラーや自動生成されていないファイルのように、AssemblyResolve ハンドラーをより早く割り当てる方法はありますか?
c# - 別のライブラリからの AssemblyResolve イベント
ライブラリを参照する WinForms プロジェクトがあります。そのプロジェクトの main() に追加しました
ただし、実行可能ファイル自体 (このプロジェクト) によって呼び出されるライブラリのみをキャッチします。ただし、プロジェクトが参照しているこのライブラリは (DllImport を介して) 別のライブラリを呼び出しており、この「インポートされたライブラリ」はいくつかのライブラリを見つけようとします (このインポートされたライブラリは管理されていないため、方法はわかりません) が、PATH でそれらを見つけることができません. アセンブリ パスを指定したいのですが、前述のように、main() はこのイベントをキャッチしません。どうすればできますか?
c# - .net C# で依存 DLL を読み込み、参照アセンブリのパスを取得する
以下のコードスニペットを使用しています。しかし、コードベースのプロパティはnullなので、どこからパスを取得できますか?