私は本当に厄介な状況に巻き込まれています。
シナリオ: .NET 4.0 ライブラリを (ExcelDna 経由で) 呼び出す Excel オートメーション VBA アドインがあります。この 4.0 ライブラリは、2.0 混合モード ライブラリのいくつかのメソッドを呼び出します。したがって、「BindAsLegacyV2Runtime」を 4.0 CLR に設定する必要がありました。これを 4.0 ライブラリに設定し、Excel がこのライブラリをインスタンス化すると、CLR はこの属性セットをロードし、すべて正常に動作します (このリンクを参照)。運用マシンでは拒否されているため、excel.exe.config を変更できません。
バッチ ファイルから Excel プロセスを開始し、アドインを次のようにロードします。
Start Excel.exe my4.0addin.xla
問題: 一部のユーザー コンピューターではこれが機能しないことがわかり、問題を調査して、Excel がパラメーターとして渡されたアドインをロードする前に、プレインストールされたアドインを最初にコンピューターにロードしていたことがわかりました。したがって、4.0 アドインが読み込まれる前に、Excel は他のアドインのために 2.0 CLR を読み込んでいました。したがって、属性の設定に失敗し、ロジックはトスになります。
Excel.exe.config を変更して (config に属性を追加するため)、アドインを登録することはできません。これは、どちらもユーザー マシンの管理者権限が必要であり、私の環境では不可能であるためです。
したがって、アドインのロードをExcelで制御する方法、またはこれを機能させる方法はありますか?