0

GAC に登録する .NET アセンブリを既に開発しています。このアセンブリは、私のアプリケーションと 4 つの Office アドインで使用されています。

次に、アプリケーションも使用できる Office アドイン用の COM インターフェイスが必要でした。COM インターフェイスを公開する .net に新しい .dll を作成しました。この .dll は現在、オフィスのアドインによって参照されています。また、GAC のアセンブリによっても参照されます。

私が抱えている問題は、オフィスのアドインがターゲット マシンに展開された COM dll を見つけられないことです。

COM dll は GAC に追加されていません。アプリケーションのフォルダー内の独自のフォルダーにあるだけです。\codebase を使用していますが、レジストリ内のクラスに codebase キーがあり、正しいパスを指していることがわかります。

Fuslogvw は機能しないことを確認していますが、それ以上は役に立ちません。

=== Pre-bind state information ===
LOG: DisplayName = MyComConnect, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c0fb9ef9db76b1e7
(Fully-specified)
LOG: Appbase = file:///C:/Program Files (x86)/MyApp/MyAppAddins/MyAppOutlook/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = OUTLOOK.EXE
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/MyApp/MyAppAddins/MyAppOutlook/MyComConnect.DLL.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/MyApp/MyAppAddins/MyAppOutlook/MyComConnect/MyComConnect.DLL.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/MyApp/MyAppAddins/MyAppOutlook/MyComConnect.EXE.
LOG: Attempting download of new URL file:///C:/Program Files (x86)/MyApp/MyAppAddins/MyAppOutlook/MyComConnect/MyComConnect.EXE.
LOG: All probing URLs attempted and failed.

何がうまくいかないのかを解決するには、どのように、または何をする必要がありますか?

いくつかのポイント;

  1. 開発マシンには、COM .dll が保存されたフォルダーがあり、これが私のプロジェクトで参照しているものです。
  2. すべてのプロジェクトのビルド時に、この COM .dll を bin フォルダーにコピーします。
  3. インストール プロジェクトの各プロジェクトで COM .dll をコピーしません。
  4. 私のインストール プロジェクトでは、COM .dll を含むフォルダーが 1 つだけあり、それを \codebase に登録します。これは、すべてのプロジェクトがそれを見つけることを意味すると考えていました。
4

0 に答える 0