Outlook2003アドインは読み込まれませんが、正常に動作しています
-
28-10-2019 - |
質問
私は2003年、2007年、2010年のOutlookアドインを作成しました。アドインは2007年と2010年に正常に動作しますが、自分の開発マシン以外のマシンで2003年に正しくロードされていません。ロード動作にはエラーが表示されず、無効な項目ではないため、コードの問題はありません。このアドインは、COMアドインの一覧にも表示されません。このアドインは、以前は2003年の下で機能していました。
ここに奇妙な部分があります。私は以前の時点からアドインのコピーを持っているので、フルバージョンの機能の一部が含まれていません。このアドインは2003年に正しくロードされます。だから私のテストの一環として、VM上で、以前のバージョンをインストールしました(私はそれを呼び出します テスト)と動作しない現在のバージョン(私はそれを呼び出します フル).レジストリのHKCU>Software>Classes>CLSID>[[guid]]>Inprocserver32の下にあります。 テスト バージョン私は'Manifest Location'と'Manifest Name'キーをの値に変更しました フル バージョン。その後、Outlookを実行し、フルバージョンは完全に実行されました。
私はどのように見ることができない フル アドインは、それ自身のレジストリ設定の下で動作しませんが、下で正常に動作します テスト'S、およびOutlook2003でのみ。
ここに基本的な情報があります:
私の開発者のセットアップは次のとおりです:
- Windows7 64ビット
- Outlook2003がインストールされています
- アドインプロジェクト用にVS2008を実行しますが、サテライトアセンブリ用にもVS2010を使用します。
- Set Security projectが含まれており、複数のアセンブリがCASPolセットを持つことができるように修正されています。
セットアッププロジェクトには、次の事前確認が含まれています:
- .Net2.0
- .Net3.5SP1
- オフィス2003PIA(また2007年及び2010年のための2007年及び2010年のPiaそれぞれ)
- VSTOSEランタイム
- Windowsインストーラ3.1
私はこの問題にほぼ4日間を費やしてきたので、どんなヒントも大歓迎です!
ティア
更新1:
@JoaoAngeloのコメントによると、レジストリ設定を確認しましたが、次のようになります:
HKCU>ソフトウェア>クラス>CLSID>{アドインCLSID}>Inprocserver32
- (default) - '%CommonProgramFiles%\Microsoft Shared\VSTO\8.0\AddinLoader.dll'
- ManifestLocation - path to the containing folder
- ManifestName - the .dll.manifest file name
- ThreadingModel - 'Both'
HKCU>ソフトウェア>Microsoft>Office>Outlook>アドイン>MyAddin
- (default) - not set
- CommandLineSafe - '1'
- Description - a string
- FriendlyName - add-in ID
- LoadBehavior - '3' (this never gets set to 2, which would indicate an issue)
- Manifest - path to the .dll.manifest of the add-in assembly
- Path - path to the containing folder
私はまた、後者の下に以下を追加しました 展開ページ, しかし、無駄に:
- ManifestLocation
- ManifestName
更新2:
0xA3コメントごとに;HKCR>MyAddinの下に、単一の文字列値を持つCLSIDキーがあります:
(default) - {add-in CLSID}
CLSIDは、HKCU>Software>Classes>CLSIDおよびレジストリ全体で見られるものと同じです。
解決
私はついに問題を見つけることができました。それはレジストリに関連していました。
当初、Outlookのバージョンごとに個別のアドインを用意する予定でした。そのため、名前空間や命名規則などは次のとおりでした。
- [会社] .AddIns.Outlook2003
- [会社] .AddIns.Outlook2007
- [会社] .AddIns.Outlook2010
しかし、3つすべてを対象とするアドインを作成できたので、[Company] .AddIns.Outlook2003の名前を[Company] .AddIns.Clientに変更しました。
説明されている変更を参照するために、HKCU>ソフトウェア> Microsoft> Office> Outlook>アドイン> MyAddinのレジストリ設定を変更しましたが、何らかの理由でHKCU>ソフトウェア>クラスで更新しませんでした。
VSで後者の設定を変更するとすぐに機能しました!
参考までに、VSのセットアッププロジェクトの[表示]> [レジストリ]で変更が行われました。
この問題は、追跡が容易だった可能性があるため、2007/2010では発生しなかったので少し面倒です。
他のヒント
まだ実行していない場合は、アドインの読み込みの問題のトラブルシューティングに役立つように、次の環境変数を設定する必要があります:
VSTO_LOGALERTS=1
VSTO_SUPPRESSDISPLAYALERTS=0
最初のものは*になります。ログファイルは、アドインアセンブリを含むディレクトリに作成され、第二は、あなたのターゲットアプリケーションを起動したときに表示されるエラー
また、Office2003を搭載したdev boxでは、アドインが正しく機能するとも言えます。Visual Studioはビルドを実行するときに開発ボックスにアドインを自動的に登録するため、セットアップで必要なすべてのレジストリキーを作成しているあなたはチェックすることができます 必要なレジストリエントリ セットアップで正しいキーが作成されていることを確認するには、次のMSDN記事のセクションを参照してください:
ここで説明されているトラブルシューティング手順に従うことをお勧めします:
何らかの理由でoutlookによってAddinが無効にされていないことを確認してください。(ユーザーレベルとは対照的に)マシンレベルをインストールした場合は、あらゆるイベントのCOMアドインリストに表示されません。ユーザーごとに追加してみてください(そのため、リストに表示されます)、そこから行きますか?