Windows アプリケーション内にプラグインとして存在する .Net コンポーネントを開発しています。このプラグインは、regasm を使用してクライアント マシンに登録されます。私のコンポーネントは依存関係のほとんどを埋め込み、要求されたときにアセンブリを AppDomain に返します。単一の dll で regasm を実行しようとすると、フォルダー内の依存関係が見つからないため失敗します。これは、コンポーネントをクライアント マシンにインストールするときに問題になります。
埋め込まれたdllを取得する場所をregasmに伝える方法はありますか?
私がこれまでに試したこと:
コンポーネントを近くの dll に登録し、単一の dll をランタイム フォルダーにコピーします。私のコンポーネントは動作し、dll は実行時に検出されますが、これは展開のオプションではありません。
ComRegisterFunctionAttribute を使用してフックインします。これは、dll が近くにある場合にのみ呼び出されるため、#1 よりも優れているわけではありません。
regasm が呼び出されるという事実を制御することはできません。コンポーネントを単一の dll にする必要はありませんが、この問題を解決できれば、展開がかなり簡単になります。