Share via


Office ソリューションの展開のトラブルシューティング

適用対象: Visual Studio

この記事では、Office ソリューションを展開するときに発生する可能性がある一般的な問題を解決する方法について説明します。

この記事の情報は、ドキュメント レベルのプロジェクトとVisual Studio Tools for Office (VSTO) アドイン プロジェクトに適用されます。 「Office アプリケーションとプロジェクトの種類で使用できる機能」を参照してください

イベント ビューアーを使用した Office ソリューションのトラブルシューティング

Windows のイベント ビューアーを使用すると、Office ソリューションをインストールまたはアンインストールするときに、Visual Studio Tools for Office ランタイムによってキャプチャされたエラー メッセージを表示できます。 イベント ロガーからこれらのメッセージを使用して、インストールとデプロイの問題を解決できます。 詳細については、「 Office ソリューションのイベント ログ」を参照してください。

アセンブリ名を変更すると競合が発生する

ソリューションを既にデプロイした後に Project Designerの [アプリケーション] ページで [アセンブリ名] の値を変更すると、発行ツールによってセットアップ パッケージが変更され、1 つの Setup.exe ファイルと 2 つの配置マニフェストが作成されます。 2 つのマニフェスト ファイルを展開すると、次の条件が発生する可能性があります。

  • エンド ユーザーが両方のバージョンをインストールすると、アプリケーションは両方の VSTO アドインを読み込みます。
  • アセンブリ名が変更される前に VSTO アドインがインストールされている場合、エンド ユーザーは更新プログラムを受け取ることはありません。

これらの条件を回避するには、ソリューションをデプロイした後でソリューションの アセンブリ名 の値を変更しないでください。

更新プログラムの確認に時間がかかる

Visual Studio 2010 Tools for Office ランタイムには、管理者がマニフェストとソリューションをダウンロードするためのタイムアウト値を設定するために使用できるレジストリ エントリが用意されています。

タイムアウト値を設定する方法

  1. レジストリで、次のキーに移動します。

    HKEY_CURRENT_USER\Software\Microsoft\VSTA

  2. AddInTimeout サブキーで、タイムアウト値をミリ秒単位で設定します。

    AddInTimeout サブキーが存在しない場合は、DWORD として作成します。

ネットワーク ファイル共有を更新または発行できない

ネットワーク ファイル共有上にある Office ソリューションでは、更新プログラムの発行中にソリューションの Setup.exe ファイルがプロセスでロックされている場合、更新中に誤解を招くメッセージが表示される可能性があります。 "'setup.exe' を Web に追加できません。 ファイル 'setup.exe' は既にこの Web に存在します。

ファイルのロックを防ぐために、共有をエンド ユーザーに読み取り専用にすることができます。 ただし、ドキュメントが共有されている場合、エンド ユーザーも読み取り専用になります。

Microsoft Office の前提条件がインストールされていません

.NET Framework、Visual Studio Tools for Office ランタイム、および Office プライマリ相互運用機能アセンブリを、Office ソリューションと共に展開される前提条件としてセットアップ パッケージに追加できます。 プライマリ相互運用機能アセンブリをインストールする方法については、「 Office ソリューションを開発するようにコンピューターを構成する 」および「 方法: Office プライマリ相互運用機能アセンブリをインストールする」を参照してください。

Localhost を使用して発行すると、インストールの問題が発生する可能性があります

ドキュメント レベルのソリューションの発行またはインストールの場所として使用 http://localhost する場合、 発行ウィザード では文字列が実際のコンピューター名に変換されません。 この場合、ソリューションは開発用コンピューターにインストールする必要があります。 展開されたソリューションで開発コンピューターで IIS を使用するには、localhost ではなく、すべての HTTP/HTTPS/FTP の場所に完全修飾名を使用します。

キャッシュされたアセンブリは、更新されたアセンブリの代わりに読み込まれます

Fusion (.NET Framework アセンブリ ローダー) は、プロジェクト出力パスがネットワーク ファイル共有上にあり、アセンブリが厳密な名前で署名され、カスタマイズのアセンブリ バージョンが変更されない場合に、アセンブリのキャッシュされたコピーを読み込みます。 これらの条件を満たすアセンブリを更新した場合、キャッシュされたコピーが読み込まれるため、次回プロジェクトを実行するときに更新は表示されません。

プロジェクトが実行されるたびに Fusion によってアセンブリがダウンロードされるように Visual Studio を構成できます。

キャッシュされたコピーを読み込む代わりにアセンブリをダウンロードする方法

  1. メニュー バーで[ プロジェクト]、[ <ProjectName> プロパティ]を選択します。
  2. [ アプリケーション ] ページで、[ アセンブリ情報] を選択します。
  3. アセンブリ バージョンのリビジョン番号 3 番目のフィールドを、野生のカード (*) に設定します。 たとえば、"1.0.*" です。 次に、[ OK ] ボタンを選択します。

アセンブリのバージョンを変更した後は、引き続き厳密な名前でアセンブリに署名できます。Fusion はカスタマイズの最新バージョンを読み込みます。

注:

Visual Studio 2017 以降、アセンブリ バージョンでワイルド カードを使用しようとすると、ビルド エラーが発生します。 これは、アセンブリ バージョンのワイルド カードが MSBuild 決定論的機能を壊すからです。 アセンブリ バージョンからワイルドカードを削除するか、決定主義を無効にするように指示されます。 決定論的機能の詳細については、「一般的な MSBuild プロジェクトのプロパティ」と「ビルドのカスタマイズ」を参照してください

URI に US-ASCII ではない文字がある場合、インストールが失敗する

OFFICE ソリューションを HTTP/HTTPS/FTP の場所に発行する場合、パスに US-ASCII にない Unicode 文字を含めることはできません。 このような文字は、セットアップ プログラムで一貫性のない動作を引き起こす可能性があります。 インストール パスには US-ASCII 文字を使用します。

開発用コンピューターにソリューションを発行してインストールすると、手動でアンインストールするように求めるメッセージが表示されます

Office ソリューションをビルドすると、ビルドされたバージョンが自動的に登録されます。 開発用コンピューターに同じソリューションを以前に発行してインストールしたことがある場合、Visual Studio Tools for Officeランタイムは、ソリューションが次にビルド、再構築、または発行された後に、発行されたバージョンとビルド済みバージョンのインストール パスが異なっていることを検出します。 "別のバージョンが現在インストールされており、この場所からアップグレードできないため、カスタマイズをインストールできません" というエラー メッセージが表示されます。レジストリ キーは、ソリューションが再構築されるたびに更新されます。 そのため、新しいバージョンを発行、デバッグ、または実行する前に、以前のバージョンをアンインストールする必要があります。

メッセージが表示されないようにするには、開発用コンピューターに別のユーザー アカウントを作成して展開をテストします。 別の方法として、次にソリューションを発行、デバッグ、または再構築する前に、コンピューターにインストールされているプログラムの一覧からバージョンをアンインストールすることもできます。

ソリューションをインストールするときにキャッチされない例外またはメソッドが見つからないエラー

展開マニフェスト ( .vsto ファイル)、Office アプリケーション、ドキュメント、ブックを開いて Office ソリューションをインストールすると、次の条件のエラー メッセージが表示されることがあります。

  • メソッドが見つかりません。
  • MissingMethodException。
  • キャッチされない例外。

これらのエラー メッセージを防ぐには、セットアップ プログラムを実行してソリューションをインストールします。

セットアップ プログラムを実行せずにソリューションをインストールすると、インストーラーは前提条件のチェックまたはインストールを行いません。 セットアップ プログラムは、前提条件の正しいバージョンを確認し、必要に応じてインストールします。

InstallShield Limited Edition プロジェクトがビルドされた後のアドインのマニフェスト レジストリ キーの変更

VSTO アドイン セットアップ プログラムの一部であるマニフェスト レジストリ キーは、InstallShield Limited Edition プロジェクトをビルドするときに 、.vsto から .dll.manifest に変更されることがあります。

この問題を回避するには、別のソリューションで InstallShield Limited Edition プロジェクトを作成するか、VSTO アドインの名前を含むレジストリ キーの値として CompanyName.AddinName を使用します。

Office ソリューションの ClickOnce インストーラーでは、プライマリ相互運用機能アセンブリはインストールされません

ClickOnce が Office ソリューション用に作成するセットアップ プログラムを実行すると、OFFICE プライマリ相互運用機能アセンブリ (PIA) のインストーラーは、既に PIA がインストールされていない場合にのみ実行されます。

セットアップ プログラムで PIA が正しくインストールされない場合は、インストール ディレクトリから o2007pia.msi という名前のインストーラー ファイルを実行して手動でインストールします。

Office ソリューションを再インストールすると、引数が範囲外の例外が発生する

Office ソリューションを再インストールすると、 ArgumentOutOfRangeException 次のエラー メッセージが表示される場合があります。指定された引数が有効な値の範囲外でした。

この状況は、インストール場所の URL の大文字と小文字が異なる場合に発生します。 たとえば、このエラーは、初めて Office ソリューション http://fabrikam.com/ExcelSolution.vsto をインストールしてから 2 回目を使用 http://fabrikam.com/excelsolution.vsto した場合に表示されます。

メッセージが表示されないようにするには、Office ソリューションをインストールするときに同じ大文字と小文字を使用します。

Web から配置マニフェストを開いて ClickOnce ソリューションをインストールできない

ユーザーは、Web から展開マニフェストを開くことによって Office ソリューションをインストールできます。 ただし、インターネット インフォメーション サービス (IIS) の一部のインストールでは 、.vsto ファイル名拡張子がブロックされます。 OFFICE ソリューションの展開に使用する前に、IIS で MIME の種類を定義する必要があります。

IIS 7 で MIME の種類を定義する方法については、「 MIME の種類の追加 (IIS7)」を参照してください。

拡張子を .vsto に、MIME の種類を application/x-ms-vsto に設定します。

関連情報