1

This is my current deployment scenario:

  • Client application is deployed in folder A
  • COM DLL, C++/CLI wrapper DLL and .NET assembly are deployed in folder B
  • DLLs/assemblies together form an SDK, the client application is a third-party consumer

This is how it is supposed to work:

  • Client application starts and creates COM object
  • Client application calls function in COM object
  • COM Object forwards call to C++/CLI wrapper DLL
  • C++/CLI ラッパー関数が呼び出しを .NET アセンブリに転送する

問題: C++/CLI ラッパーが .NET アセンブリを見つけることができず、アプリケーションがクラッシュします。

これまでに考えられる解決策:

  • .NET アセンブリに厳密な名前を付けて、フォルダ B ではなく GAC に展開します。
  • クライアント アプリケーションに .config ファイルを渡し、フォルダー B でアセンブリを探すように指示します。
  • .NET アセンブリを動的にロードする C++/CLI ラッパーに、ある種のカスタム「リゾルバー ルーチン」を追加します (この SO answerのようなもの) 。

さまざまな理由から、これらのソリューションのどれも特に魅力的とは思えません。この問題を解決できる他のメカニズムを知っていますか? 理想的なソリューションは、SDK 側で何らかの構成を使用することですが、私の知る限り、アセンブリに .config ファイルを与えることはできませんか?

私は特に .NET に精通しているわけではないので、「リゾルバー ルーチン」ソリューションに関するコメントをいただければ幸いです。これは人々が日常的に行っていることですか、それとも何らかの理由で避けるべき珍しいことですか?

4

1 に答える 1