1

他人の荷物の山を渡されたことがあります。これらのアイテムの中には、2007 年には問題なく動作していたと報告されている Word 2003 アドイン (VSTO 2005 SE、.NET 2.0) がありますが、当社の展開環境では 2003 が必要です。追加/削除 -- ただし、ツールバーは Word 自体では使用できません。

おそらく、これは誰かのテスト環境では問題なく動作しますが、共通の開発環境で動作するのを見たことはありません。MSI と setup.exe の両方を含むセットアップ/展開プロジェクトがあります。(念のため、CABに詰め込んでみました。前提条件を個別にインストールして試しましたが、明らかな違いはありません。)

MSI、setup.exe、右クリックでセットアップ/展開プロジェクトを Visual Studio にインストールすると、これらの方法のいずれもエラーを報告しませんが、これらの方法のいずれも Server 2003 上の Word 2003 でツールバーを表示することに成功しません。しかし、デバッグのために Visual Studio を winword.exe に指定してプロジェクトを開始すると、アドイン ボタンが表示されます。それは、その後の独立したクライアントのスタートアップにも引き続き現れます。追加/削除または右クリックでアンインストールするか、MSI を実行して削除することで明示的に削除するまで、ツールバーとして使用できます。

だから今、私は途方に暮れています-典型的なセットアップ/展開インストール中には起こらないデバッグで実行することによって何が起こっていますか?

編集:わかりました、更新します。Word 2003 用のクリーンな VSTO 2005 アドイン、新しいアドイン名、クリーン スレートを作成しました。Server 2003 と XP Pro の両方で、ネイキッド プロジェクト、バージン レジストリで同じ動作が発生します。私は XP のローカル管理者であり、2003 ボックスのドメイン管理者です。

4

2 に答える 2

2

トラブルシューティングに関するいくつかの質問を次に示します。

  • どのような種類のアドインを開発していますか? 共有アドインまたは VSTO ですか? VSTOの場合、どのバージョンですか?
  • どのOSを使用していますか?Vistaは難しいかも…
  • レジストリでアドインの LoadBehavior を確認します。値は次のいずれかで見つかります

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Word\Addins\<add-in class name>\
    

    また

    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Word\Addins\<add-in classname>\
    

LoadBehavior の値が 2 の場合、起動時にアドインが無効になっています。これは、Word がアドインをインスタンス化できない場合に発生します。これは通常、アドインが未処理の例外をスローするか、アドインが正しく登録されていないためです。

VSTO ランタイムがターゲット システムに正しくインストールされていることを確認しましたか?

ただし、VSTO を使用している場合でも、Word のアドインは従来の IDTExtensibility2 インターフェイスを拡張する従来の COM アドインのように見えます。このようなアドインは、次の方法で登録する必要があります。

  • 上記の 2 つのレジストリ キーのいずれかで、Word にアドインのクラス名と、読み込み動作や説明などの追加情報を伝えます。
  • アドインのクラス名は、

    HKEY_CLASSES_ROOT\<add-in classname>\CSLID
    
  • COM コンポーネントの正しいバージョンを以下に登録する必要があります ({xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} は、HKEY_CLASSES_ROOT\\CSLID で指定されたコンポーネントの GUID です)。

    HKEY_CLASSES_ROOT\CLSID\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
    

次の 2 つのリンクも、問題をさらに絞り込むのに役立つ場合があります。

HOWTO: Visual Studio および Office アドインのトラブルシューティング

Outlook COM アドインのトラブルシューティング – ProcMon の使用

于 2009-01-20T19:36:46.687 に答える
1

編集: アドイン アセンブリの完全な信頼が最終的に修正されました。完全な信頼よりも低いものでは実行されないようです。

///

マイクロソフトとのチケットを開くことになり、VSTO_SUPPRESSDISPLAYALERTSについて教えてくれました:

http://msdn.microsoft.com/en-us/library/ms269003(VS.80).aspx

この値のデフォルトは 1 です。0 に設定すると、ポップアップ ダイアログが表示されますが、それ以外の場合は埋もれます。

詳細についてはまだ検討中であり、このスレッドを更新し続けますが、最終的に前進するための基礎ができました。

Could not load file or assembly 'PrintTest2007, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Failed to grant permission to execute. (Exception from HRESULT: 0x80131418)


************** Exception Text **************
System.IO.FileLoadException: Could not load file or assembly 'PrintTest2007, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Failed to grant permission to execute. (Exception from HRESULT: 0x80131418)
File name: 'PrintTest2007, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' ---> System.Security.Policy.PolicyException: Execution permission cannot be acquired.
   at System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission)
   at System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission)
   at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.HandleOnlineOffline(Exception e, String basePath, String filePath)
   at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.LoadStartupAssembly(EntryPoint entryPoint, Dependency dependency, Dictionary`2 assembliesHash)
   at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.ConfigureAppDomain()
   at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.LoadAssembliesAndConfigureAppDomain(IHostServiceProvider serviceProvider)
   at Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.LoadEntryPointsHelper(IHostServiceProvider serviceProvider)
于 2009-01-22T18:50:11.333 に答える