1

カスタム テンプレートのドキュメント アクション ウィンドウに追加しようとしているコントロールがいくつかあります。そうするたびに、次のエラーが発生します。

System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.

この問題に関連するさまざまな 検索 結果 出くわしましたが、それらのいくつかに基づいて、文書マップが有効になっている場合 (2010 年に新しいナビゲーション ウィンドウに移動されました)、以前のバージョンの Word でこれが発生する可能性があるようです。 . しかし、私のものは間違いなく無効になっているので、あまり役に立ちません。違いを確認するために有効にしてみましたが、エラーは上記のエラーと次の 2 つの組み合わせに変わります。

  • Exception from HRESULT: 0x8004063B

  • You are currently viewing this document in multiple windows. To attach an XML expansion pack, you must first close all additional windows so that you are viewing the document in only one window.(複数のウィンドウで表示したり、XML スキーマを添付しようとしているわけではありません)

しかし、それはちょっと無関係です。後世のためにここに記録しました。

とにかく、これは特定のマシンでのみ発生します。これが私が見つけた違いです。File > Options > Trust Center > Trust Center Settings > Message Barと呼ばれるチェックボックスがありますEnable Trust Center Logging。この文書化されていない設定は、次のように出力されます。

%USERPROFILE%/AppData/Local/Microsoft/Office/TCDiag/WDTCD.log

そのログ ファイルには、次のような多くのエントリが表示されます。

Content Type: SmartTags
Binary: "c:\Program Files (x86)\Common Files\Microsoft Shared\VSTO\vstoee.dll"
Certificate: Microsoft Corporation
Certificate Signature: Microsoft Code Signing PCA
Certificate Status: Trusted
Trust Center Decision: Enable Content

これらのほとんどは、操作ウィンドウが機能するマシンと機能しないマシンの間で同じです。ただし、上記の vstoee.dll のエントリは同じではありません。動作していないマシンでは次のように表示されます。

Certificate Status: Untrusted
Trust Center Decision: Block Content

証明書は信頼できる発行元のMicrosoft Corporationリストにあり、2015 年 7 月 22 日に期限切れになりました。これはコード署名証明書であり、vstoee.dll は署名時にタイムスタンプが付けられているため、正常であると認識されるはずです (ファイル システムを介してチェックすると、これがチェックアウトされます)。さらに、この DLL は、アドインをロードするときに使用されます(ロード プロセスの #2)。そのため、アドインがロードされた場合、この後の使用は問題になりません。

だからここに私の質問があります。vstoee.dll がアドインの読み込み時に信頼されているのに、ドキュメント アクション ウィンドウにコントロールを追加するときに一部のコンピューターで信頼されていないのはなぜですか?

4

1 に答える 1

0

Microsoft Corporation証明書が実際には信頼できる発行元のリストに含まれていなかったことが判明しました。他にも同じ名前のものがいくつかありましたが、賞味期限が違いました。そのリストに追加すると、問題が解決しました。

残念ながら、アドインは同じファイルを使用するため、アドインがロードできた理由を説明できません。

于 2016-07-27T16:46:59.927 に答える