次の方法で共有


Visual Studio Tools for the Office System (3.0) で、ClickOnce を使用して 2007 Office System ソリューションを配置する

  

Robert Green、MCW Technologies, LLC

2007 年 10 月

適用対象:
   Microsoft Visual Studio 2008、Microsoft Visual Studio Tools for the Microsoft Office System (3.0)

要約: ClickOnce 配置テクノロジを使用して、2007 Microsoft Office ソリューションを配置する方法について説明します。

目次

ClickOnce を使用してソリューションを発行する
サンプル アプリケーションを作成する
発行ウィザードでソリューションを配置する
Microsoft Office ソリューションをインストールする
発行オプション
ソリューションを更新する
ClickOnce セキュリティ チェック
まとめ
著者について
追加情報

クライアント アプリケーション (Windows Forms または Windows Presentation Foundation を使用するアプリケーションなど) は、高品質なユーザー エクスペリエンスに加えて、ストレージやプリンタなどのローカル リソースへのアクセスが可能です。クライアント アプリケーションには、オフライン サポートが実装されており、アプリケーションを一度インストールすれば、オフラインでもアプリケーションを使用することができます。

Microsoft Visual Studio 2008 および Microsoft Visual Studio Tools for the 2007 Microsoft Office System (3.0) を使用してビルドされるソリューションは、クライアント アプリケーションであり、Microsoft Office Word 2007 や Microsoft Office Excel 2007 のような使い慣れたアプリケーションのユーザー インターフェイス (UI) を備えます。

Microsoft .NET Framework 2.0 および Microsoft Visual Studio 2005 に追加された最も重要なテクノロジは、ClickOnce です。ClickOnce とは、自己更新型 Windows ベース アプリケーションの作成を可能にする配置テクノロジです。この配置テクノロジで作成されたアプリケーションでは、インストールと実行に最低限のユーザー操作しか必要ありません。 ClickOnce により、Web ベースの配置によるメリットを、クライアント アプリケーションでも実現できます。 Visual Studio 2008 では、ClickOnce を使用し、2007 Office System のソリューションを配置できるようになりました。

Microsoft .NET Framework を使用するアプリケーションと同様に、開発環境でソリューションを作成、テストした後は、そのソリューションをユーザーに配置する必要があります。また、ソリューションに変更を加えた場合は、それらの更新を配置する必要もあります。

Microsoft Office ソリューションを配置するときの検討事項は、Windows クライアント アプリケーションを配置するときの検討事項と同じです。すなわち、ソリューションを実行するのに各ユーザーのコンピュータで必要なものは何か、ソリューションを各ユーザーに対してどのように配置するのか、更新をどのように配置するのかという点です。

この記事では、ClickOnce を使用して、2007 Office System のソリューションを配置する方法について紹介します。この記事の練習では、ドキュメントレベルのソリューションを使用します。 ただし、紹介する方法は、アプリケーションレベルのソリューションでも同じです。

ClickOnce を使用してソリューションを発行する

ClickOnce アプリケーションとは、ClickOnce テクノロジを使用して発行された Windows Presentation Foundation、Windows Forms、コンソール アプリケーション、または Microsoft Office ソリューションすべてを指します。ClickOnce アプリケーションは、Web ページ、ネットワーク ファイル共有、または DVD などのメディアという 3 つの方法で発行できます。 ClickOnce アプリケーションのインストールが完了すると、コンピュータがオフラインの場合であっても、そのアプリケーションをローカルで実行することができます。または、コンピュータに恒久的にインストールせずに、オンライン専用モードで実行することもできます。 詳細については、「ClickOnce 配置ストラテジの選択」を参照してください。

ソリューションのコンポーネントは、発行場所とインストール場所の 2 か所に発行する必要があります。

アプリケーションを発行する場所は、ユーザーがアプリケーションのインストールを開始する場所と同じである必要はありません。次のように、いくつかのオプションがあります。

  • Web サイトまたはネットワーク共有にアプリケーションを発行し、ユーザーがそこからインストールできるようにする。
  • ステージング Web サイトにアプリケーションを発行し、ファイルはインストール用の別のサイトにコピーする。
  • テスト インストール用としてネットワーク共有にアプリケーションを発行し、その後ユーザーが Web サイトや製品 CD から正式にインストールできるようにする。

Microsoft Office ソリューションには、次のコンポーネントが含まれます。

  • Microsoft Office ドキュメント (ドキュメントレベルのソリューションを作成する場合)。
  • カスタマイズ アセンブリおよびそのアセンブリが依存するすべてのアセンブリ。
  • 配置マニフェスト ファイル。このファイルにより、ソリューションの場所と現在のバージョンが識別されます。
  • アプリケーション マニフェスト ファイル。このファイルにより、カスタマイズ アセンブリの名前、バージョン、および場所が識別されます。

Visual Studio 内からアプリケーションを発行するには、発行ウィザードを使用する方法と、Project Designer の発行ページを使用する方法の 2 とおりがあります。発行ウィザードでは、ソリューションの発行に必要な基本的な情報を入力するよう表示されます。 一方、発行ページは、追加オプションを設定したり、発行プロセスをカスタマイズしたりする場合に使用できます。

サンプル アプリケーションを作成する

この練習では、この後で使用する簡単な Microsoft Office ソリューションを作成します。

Microsoft Office ソリューションを作成するには

  1. Visual Studio を起動します。Windows Vista を使用している場合は、Web サーバーに発行するための権限を持つように、管理者として Visual Studio を実行していることを確認してください。

  2. ClickOnce Demo という Microsoft Office Word 2007 Template ソリューションを作成します。

  3. ThisDocument.vb ファイルを開きます。

  4. ThisDocument_Startup メソッドに、次のコードを追加します。

    Try
        ' Insert the date into the document.
        Me.Content.InsertAfter(DateTime.Today.ToShortDateString())
        ' Go to the end of the line and add two paragraph returns.
        With Me.Application.Selection
            .EndKey(Word.WdUnits.wdLine)
            .TypeParagraph()
            .TypeParagraph()
        End With
    Catch
        MessageBox.Show( _
            "The date could not be added to the document.")
    End Try
    
  5. ソリューションを実行し、カスタマイズを確定すると、ドキュメントに日付が追加され、その日付の下に 2 行が追加されます。

  6. Word 2007 を終了します。

発行ウィザードでソリューションを配置する

この練習では、発行ウィザードを使用して Microsoft Office ソリューションを配置します。次の練習では、ソリューションへの更新を配置します。

  1. ソリューションを発行するには、ソリューション エクスプローラでプロジェクト名を右クリックし、[発行] をクリックします。[発行ウィザード] ダイアログ ボックスが表示されます。

  2. ソリューションを発行する場所を入力します。図 1 に示すように URL を指定することも、ディスク パス、ローカル フォルダ、またはネットワーク共有を指定することもできます。

    図 1. 発行場所を指定する

    Bb821233.bb821233_fig1(ja-jp,office.12).gif

  3. [次へ] をクリックします。

  4. ユーザーがソリューションのインストールを開始する場所を入力します。図 2 に示すように、Web サイトまたはネットワーク共有を指定できます。

    図 2. インストール場所を指定する

    Bb821233.bb821233_fig2(ja-jp,office.12).gif

  5. [完了] をクリックします。Visual Studio は、ソリューションを発行する前に、ソリューションをビルドします。ビルドが完了すると、左下に "発行は成功しました" というメッセージが表示されます。

  6. Windows エクスプローラで、inetpub\wwwroot\ClickOnce Demo というフォルダに移動します。図 3 に示すような内容が表示されます。

    図 3. 発行後、Visual Studio によって作成されるフォルダとファイル

    Bb821233.bb821233_fig3(ja-jp,office.12).gif

    ClickOnce Demo.vsto と ClickOnce Demo_1_0_0_0.vsto という名前で、発行場所にテンプレートがコピーされます。これらのファイルは、ソリューションの配置マニフェスト ファイルです (ただし、エクスプローラでは、アプリケーション マニフェスト ファイルとして表示されます)。 最初のファイルは、現在の配置マニフェスト ファイルです。2 番目のファイルは、ソリューション バージョン 1.0.0.0 用の配置マニフェスト ファイルです。 現時点では、1.0.0.0 が最新バージョンです。

    配置マニフェスト ファイルは XML ファイルの 1 つで、ソリューションの配置を記述し、最新のバージョン番号を追跡するために使用されます。Visual Studio Tools for the Office System のランタイムは、配置マニフェスト ファイルをクエリし、ダウンロードするアプリケーション マニフェスト ファイルのバージョンを特定します。

  7. メモ帳で、ClickOnce Demo.vsto ファイルを開きます。

    **注意:   **[この種類のファイルを開くときは、選択したプログラムをいつも使う] チェック ボックスがオフになっていることを確認してください。既定で .vsto ファイルにメモ帳を関連付けると、Microsoft Office ソリューションの ClickOnce インストールと更新が機能しなくなります。

    次の XML が表示されます。この XML により、ランタイムはアプリケーション マニフェスト ファイルの場所を特定します。

    <dependency>
      <dependentAssembly dependencyType="install" 
        codebase="ClickOnce Demo_1_0_0_0\ClickOnce Demo.dll.manifest" 
        size="11704">
    
  8. Windows エクスプローラで、ClickOnce Demo_1_0_0_0 フォルダに移動します。

    図 4 に示すように、このフォルダに、テンプレートとカスタマイズ アセンブリが含まれます。カスタマイズ アセンブリには、.deploy ファイル名拡張子が付けられています。

    ClickOnce Demo.dll.manifest ファイルは、アプリケーション マニフェスト ファイルです。アプリケーション マニフェスト ファイルとは、XML ファイルの 1 つで、ランタイムがカスタマイズ アセンブリをロードおよび更新する際に必要な情報が含まれています。

    図 4. ClickOnce Demo_1_0_0_0 フォルダに含まれるファイル

    Bb821233.bb821233_fig4(ja-jp,office.12).gif

  9. メモ帳で、ClickOnce Demo.dll.manifest ファイルを開きます。

    次のコード例では、ランタイムに対して、ClickOnce キャッシュから、カスタマイズ アセンブリのバージョン 1.0.0.0 を取得するよう指示しています。

    <dependency>
      <dependentAssembly dependencyType="install" 
       allowDelayedBinding="true" codebase="ClickOnce Demo.dll" 
       size="18944">
       <assemblyIdentity name="ClickOnce Demo" version="1.0.0.0" 
        language="neutral" processorArchitecture="msil" />
    

Microsoft Office ソリューションをインストールする

Microsoft Office ソリューションは、Web サイト、ネットワーク共有、または DVD などの物理メディアからインストールできます。このセクションでは、ソリューションのインストールとアンインストールについて説明します。 インストールは、次の 3 つの方法で開始できます。

  • ドキュメントを開く。
  • .vsto ファイルを実行する。
  • セットアップ プログラムを実行する。

Web サイトからインストールする

ドキュメントを開くと、Visual Studio Tools for the Office System のランタイムが配置マニフェスト ファイルと ClickOnce Demo.vsto ファイルをダウンロードします。カスタマイズが新しい、または更新されている場合、ランタイムは Visual Studio Tools for the Office System の実行エンジン コンポーネントを使用し、.vsto ファイルを実行します。 .vsto ファイルを手動で実行して、ソリューションをインストールすることもできます。

Web サーバーは、既定で .vsto ファイルを認識しません。ソリューションを Web サイトに発行した場合、まず Web サーバーに MIME タイプを追加する必要があります。

Web サーバーに MIME タイプを追加するには

  1. コントロール パネルで、[管理ツール] をクリックします。
  2. [インターネット インフォメーション サービス マネージャ] をクリックし、[MIME タイプ] をダブルクリックします。
  3. [アクション] ボックスで [追加] をクリックします。
  4. [ファイル名拡張子] ボックスに、「.vsto」と入力します。
  5. [MIME タイプ] テキスト ボックスで、「application/octet-stream」と入力し、[OK] をクリックします。

ドキュメントを開くことで、ソリューションをインストールするには

  1. ClickOnce Demo.dotx を、発行場所からデスクトップなどの別の場所にコピーします。

  2. 現在、Visual Studio でテンプレートが開かれていないことを確認します。

  3. テンプレートを開きます。

    [Microsoft Office Customization Installer] ダイアログ ボックスが表示されます。図 5 に示すように、まずインストーラは展開マニフェスト ファイルの ClickOnce Demo.vsto をダウンロードします。

    図 5. 配置マニフェスト ファイルをダウンロードしているインストーラ

    Bb821233.bb821233_fig5(ja-jp,office.12).gif

    次にインストーラは、発行者を識別および信頼できるかを調べます。識別および信頼できない場合は、図 6 に示すダイアログ ボックスを表示します。

    図6. 発行者を確認できなかった場合に表示される、信頼するかどうかの判断を求めるプロンプト

    Bb821233.bb821233_fig6(ja-jp,office.12).gif

  4. [インストール] をクリックします。

    図 7 に示すダイアログ ボックスが表示されます。Visual Studio Tools for the Office System のランタイムによって、カスタマイズがダウンロードされます。

    図 7. カスタマイズのインストール

    Bb821233.bb821233_fig7(ja-jp,office.12).gif

  5. インストールの完了後、[閉じる] をクリックします。

    ドキュメントに日付が表示されます。挿入ポイントは、その日付の 2 行下になります。

  6. Word 2007 を終了します。

コントロール パネルで、[プログラムと機能] をクリックします。図 8 に示すように、ClickOnce Demo アプリケーションが表示されます。

図 8. ClickOnce Demo ソリューションが、[プログラムと機能] に表示される

Bb821233.bb821233_fig8(ja-jp,office.12).gif

ClickOnce Demo をアンインストールします。

.vsto ファイルを実行することで、ソリューションをインストールするには

  1. ブラウザを開きます。アドレス バーに、「http://vistavpc/ClickOnce Demo/ClickOnce demo.vsto」と入力します。

  2. 前の手順と同じダイアログ ボックスが表示されます。

  3. ソリューションをインストールします。

  4. Word 2007 テンプレートを開きます。

    ドキュメントに日付が表示されます。挿入ポイントは、その日付の 2 行下になります。

  5. Word 2007 を終了します。

ClickOnce Demo をアンインストールします。

ネットワーク共有からインストールする

この練習では、ソリューションをネットワーク共有に発行し、その場所からインストールします。

ソリューションをネットワーク共有に発行するには

  1. コンピュータで ClickOnce Demo フォルダを作成し、そのフォルダに共有を設定します。
  2. Visual Studio に戻ります。
  3. ソリューション エクスプローラで、プロジェクト名を右クリックし、[発行] をクリックします。
  4. 発行場所として、「\\vistavpc\ClickOnce Demo」と入力します。[次へ] をクリックします。
  5. [UNC パスまたはファイル共有から] を選択します。
  6. 発行場所として、「\\vistavpc\ClickOnce Demo」と入力します。[完了] をクリックします。

Windows エクスプローラで、ClickOnce Demo フォルダに移動します。

前述と同じような内容が表示されます。ただし、今回は ClickOnce Demo_1_0_0_1.vsto ファイルと ClickOnce Demo_1_0_0_1 フォルダが表示されます。

ソリューションを発行するたびに、ソリューション バージョン番号のリビジョン部分が増分されるためです。バージョン番号の管理については、後で説明します。

ソリューションをネットワーク共有からインストールするには

  1. 発行場所から ClickOnce Demo.dotx をコピーし、前のバージョンを上書きします。

    最初のバージョンのドキュメントは、配置マニフェスト ファイルを Web サイトからダウンロードします。新しいバージョンのドキュメントは、配置マニフェスト ファイルをネットワーク共有からダウンロードします。

  2. 3 つのインストール方法のいずれかを使用して、ソリューションをインストールします。

  3. テンプレートを開きます。

    図 9 に示す [Microsoft Office Customization Installer] ダイアログ ボックスが表示されます。インストーラは、ネットワーク共有から配置マニフェスト ファイルの取得を開始する点に注目してください。

    図 9. インストーラでネットワーク共有から配置マニフェスト ファイルを取得する

    Bb821233.bb821233_fig9(ja-jp,office.12).gif

  4. 前述のように、カスタマイズをインストールします。カスタマイズの実行を確認します。

  5. Word 2007 を終了し、ClickOnce Demo をアンインストールします。

  6. デスクトップの [スタート] をクリックし、[ファイル名を指定して実行] をクリックします。

  7. \\vistavpc\ClickOnce Demo」と入力して、[OK] をクリックします。

  8. ClickOnce Demo フォルダで、ClickOnce Demo.vsto ファイルをダブルクリックします。

    Microsoft Office Customization Installer が見つかります。

  9. 指示に従って、カスタマイズをインストールします。

  10. ドキュメントを開き、カスタマイズの実行を確認します。

  11. Word 2007 を終了し、ClickOnce Demo をアンインストールします。

  12. ClickOnce Demo フォルダで、setup.exe ファイルをダブルクリックします。

    Microsoft Office Customization Installer が見つかります。

  13. 指示に従って、カスタマイズをインストールします。

  14. ドキュメントを開き、カスタマイズの実行を確認します。

ここまでの練習で、次の 3 つの方法で Office ソリューションをインストールする方法について学びました。

  • ドキュメントを開く。
  • 配置マニフェスト ファイルを実行する。
  • セットアップ プログラムを実行する。

いずれの方法でも、配置マニフェスト ファイルがダウンロードされて、カスタマイズがインストールされます。

発行オプション

発行ウィザードにより、発行場所とインストール場所という 2 つの情報が求められます。[完了] をクリックすると、Visual Studio によってソリューションが発行されます。 Project Designer の [発行] タブを使用して、発行に関するさまざまなオプションや設定を指定できます。 このセクションでは、[発行] タブを使用して、追加の発行オプションを指定する方法について説明します。

  1. Visual Studio の Project Designer で、図 10 に示すような [発行] タブに移動します。

    図 10. Project Designer の [発行] タブで設定される発行オプション

    Bb821233.bb821233_fig10(ja-jp,office.12).gif

    [発行] タブで、発行およびインストール フォルダを設定または変更できます。ソリューションの発行言語を選択することもできます。 英語以外の言語を選択する場合、ユーザーが Visual Studio Tools for the Office System 言語パッケージをインストールしていることを確認してください。 詳細については、「Microsoft Visual Studio 2005 Tools for the Microsoft Office System (VSTO2005) 再頒布可能パッケージ Language Package」を参照してください。

    既定で、[リリースごとにリビジョンを自動的に追加する] チェック ボックスがオンになっています。このオプションがオンになっていると、ソリューションを発行するたびに、バージョン番号のリビジョン部分が増分されます。図 10 には、次のバージョンが 1.0.0.2 であることが示されています。

    **メモ:   **バージョン番号は、発行のたびに増分するようお勧めします。重要な機能を追加する場合や、多数の問題を解決する場合は、リビジョン部分に代わって、マイナー部分を増分することもできます。

  2. [必須コンポーネント] をクリックして、図 11 に示すようなソリューションの必須コンポーネントを表示します。

    Visual Studio 2008 でビルドされる Microsoft Office ソリューションには、Microsoft .NET Framework 3.5 と Visual Studio Tools for the Office System のランタイムが必要です。

    図 11. 必須コンポーネントの表示と指定

    Bb821233.bb821233_fig11(ja-jp,office.12).gif

ソリューションを発行すると、Visual Studio は既定で Setup.exe ファイルを作成します。この実行可能ファイルは、必須コンポーネントのインストールに Windows インストーラ テクノロジを使用するので、Windows Installer 3.1 も別の必須コンポーネントになります。

ソリューションで必要な場合は、SQL Server 2005 Express Edition などの追加の必須コンポーネントを指定できます。既定で、ClickOnce は、ベンダの Web サイトから必要なコンポーネントをダウンロードします。 ただし、別の場所からインストールするよう ClickOnce を構成することができます。 この場所には、アプリケーションのインストール場所、Web サイト、イントラネット サイト、ネットワーク共有、またはユーザー コンピュータのフォルダを指定することができます。

ソリューションを更新する

このように、ユーザーは発行されたソリューションを簡単にインストールできます。とはいえ、ソリューションのインストールは、ClickOnce が提供するメリットの 1 つにすぎません。 他のメリットに、アプリケーションの自動更新があります。ソリューションは、定期的に配置マニフェスト ファイルを読み取り、カスタマイズの更新がないかどうかを確認します。 更新が見つかると、Visual Studio Tools for the Office System のランタイムは、新しいバージョンのカスタマイズをダウンロードします。

アプリケーションの更新を制御するには、Project Designer の [発行] タブで、[更新] をクリックします。図 12 に示すような [Customization Updates] ダイアログ ボックスが表示されます。

図 12. ランタイムがカスタマイズの更新を確認する間隔を設定する

Bb821233.bb821233_fig12(ja-jp,office.12).gif

既定で、Visual Studio Tools for the Office System のランタイムは、7 日ごとに確認を行います。これにより、更新の確認によるパフォーマンスの低下を防いでいます。 たとえば Word 2007 アドインを 5 つインストールしており、各アドインがロード時に確認を行う場合、Word 2007 を起動するたびに、すべてのアドインが更新の確認を終了するまで待機する必要があります。

ランタイムは、新しいバージョンの配置マニフェスト ファイルをダウンロードし、そのファイルが新しいバージョンのアプリケーション マニフェスト ファイルを参照しているかどうかを確認することで、更新を確認します。この更新動作は、間隔を変更したり、自動確認をオフにしたり、カスタマイズの実行ごとに確認するよう選択したりすることで変更できます。

カスタマイズをインストールすると、インストーラは更新動作をレジストリに記録します。更新動作が変更されると、Visual Studio Tools for the Office System のランタイムは、次回更新をダウンロードする際にその変更を記録します。

たとえば、既定の 7 日の更新間隔を使用して、カスタマイズを発行し、インストールしたとします。2 日後、カスタマイズに変更を加えました。 さらに、更新を毎回行うよう、更新動作を変更しました。 その後、再発行しました。 すると 5 日後、Visual Studio Tools for the Office System のランタイムは、更新の確認を行います。ランタイムは、更新を 1 つ見つけ、その更新をダウンロードします。 このとき、ランタイムは更新動作の変更をレジストリに記録します。

ユーザーが次回カスタマイズを実行すると、ランタイムは更新を確認し、必要に応じてダウンロードします。

更新動作をすぐに変更したい場合は、ユーザーに対してカスタマイズを再インストールするよう指示できます。

発行された Word 2007 ソリューションを更新するには

  1. [発行] タブで [更新] をクリックします。

  2. [Check every time the customization runs] をオンにして、[OK] をクリックします。

  3. ClickOnce Demo フォルダに移動し、既存の内容を削除します。

  4. Visual Studio で、バージョン番号の [リビジョン] 部分を [0] に変更します。

    これで、ソリューションの最初のバージョンを再発行できます (つまり、ソリューションを最初から発行し直すことができます)。

  5. [今すぐ発行] をクリックして、アプリケーションを再度発行します。バージョン番号のリビジョン部分が 1 になる点に注目してください。

  6. Windows エクスプローラで、発行フォルダに移動します。

  7. カスタマイズをアンインストールします。

  8. Setup.exe または ClickOnce Demo.vsto をダブルクリックして、カスタマイズを再インストールします。

    **メモ:   **現在インストールされているバージョンは、既定の 7 日の更新間隔を使用するため、再インストールが必要です。

  9. ドキュメント ファイルを再度コピーし、現在のバージョンを上書きします。

  10. ドキュメントを開き、カスタマイズの実行を確認します。

  11. 異なるフォーマットで日付が表示されるように、ThisDocument_Startup メソッドを変更します。

    Me.Content.InsertAfter(DateTime.Today.ToLongDateString())
    
  12. ソリューションを再発行し、ドキュメントを再度開きます。

  13. Windows エクスプローラで、発行場所に移動します。図 13 に示すような内容が表示されます。

    図 13. Visual Studio により、ソリューションの発行場所にフォルダとファイルが追加される

    Bb821233.bb821233_fig13(ja-jp,office.12).gif

  14. メモ帳で、ClickOnce Demo.vsto ファイルを開きます。

    次の XML が表示されます。この XML により、アプリケーション マニフェスト ファイルの場所が指定されています。

    <dependency>
      <dependentAssembly dependencyType="install" 
       codebase=
       "ClickOnce Demo_1_0_0_1\ClickOnce Demo.dll.manifest" 
       size="11628">
    
  15. Windows エクスプローラで、ClickOnce Demo_1_0_0_1 フォルダに移動します。

  16. メモ帳で、ClickOnce Demo.dll.manifest ファイルを開きます。

    次の XML が表示されます。この XML は、ランタイムに対して、ClickOnce キャッシュから、バージョン 1.0.0.1 のカスタマイズ アセンブリを取得するよう指示しています。

    <dependency>
      <dependentAssembly dependencyType="install" 
       allowDelayedBinding="true" 
       codebase="ClickOnce Demo.dll" 
       size="18944">
       <assemblyIdentity name="ClickOnce Demo" version="1.0.0.0" 
        language="neutral" processorArchitecture="msil" />
    
  17. Word 2007 テンプレートを開きます。

図 14 に示すダイアログ ボックスが表示されます。Visual Studio Tools for the Office System のランタイムによって、更新されたカスタマイズがダウンロードされます。 新しいカスタマイズが実行され、日付が長いフォーマットで表示されます。

図 14. カスタマイズの更新バージョンをインストールする

Bb821233.bb821233_fig14(ja-jp,office.12).gif

自動更新は、ClickOnce が持つ非常に便利な機能です。管理者が行うことは、新しいバージョンのカスタマイズを発行することだけです。 ユーザーがドキュメントを開くと、更新は自動的に受信、インストールされます。

更新をロール バックする

ソリューションを発行するたびに、Visual Studio は発行場所とインストール場所を更新します。最上位フォルダには、最新の配置マニフェスト ファイルと、発行された各バージョンのソリューションの配置マニフェスト ファイルが含まれます。また、各バージョンに対応するフォルダがあり、それらの各フォルダには該当するバージョンのソリューションのドキュメント カスタマイズおよびアプリケーション マニフェスト ファイルが含まれます。

ソリューションのバージョンを維持することにより、更新のロール バックが簡単に行えるようになっています。ドキュメントを開くと、Visual Studio Tools for the Office System のランタイムは、ClickOnce Demo.vsto をダウンロードします。 これは最新の配置マニフェスト ファイルで、どのバージョンのカスタマイズをロードするかが指定されています。

前の練習では、バージョン 1.0.0.1 を発行しました。したがって、配置マニフェスト ファイルにはこのバージョンが指定されています。別のバージョンのカスタマイズをロードするには、この配置マニフェスト ファイルの内容を変更するか、そのファイルを前のバージョンの配置マニフェスト ファイルで置き換えます。

発行した更新をロール バックするには

  1. Windows エクスプローラで、発行フォルダに移動します。
  2. ClickOnce Demo.vsto ファイルを削除します。
  3. ClickOnce Demo_1_0_0_0.vsto ファイルのコピーを作成します。
  4. 作成したコピーの名前を ClickOnce Demo.vsto に変更します。
  5. Word 2007 テンプレートを開きます。

図 8 に示すダイアログ ボックスが表示されます。Visual Studio Tools for the Office System のランタイムによって、前のバージョンのカスタマイズがダウンロードされます。日付が短いフォーマットで表示されます。

1.0.0.1 バージョンのカスタマイズに戻るには、前述の手順を繰り返します。ただし、ClickOnce Demo_1_0_0_1.vsto のコピーを作成します。

**メモ:   **Setup.exe ファイルは、発行するたびに上書きされます。セットアップ プログラムは、必要に応じて必須コンポーネントをインストールし、その後配置マニフェスト ファイルをダウンロードします。 必須コンポーネントに変更がない場合、このファイルのバージョンを複数維持する必要はありません。

ClickOnce セキュリティ チェック

ユーザーが Microsoft Office ソリューションをインストールまたは更新すると、ソリューションが信頼できることを確認するため、Visual Studio Tools for the Office System のランタイムによって次の一連のセキュリティ チェックが実行されます。

  1. ドキュメントが、ユーザーのコンピュータ、または信頼されているフォルダに含まれているかどうかのチェック。含まれている場合、ランタイムは次のチェックに進みます。 含まれていない場合、ソリューションはロードされません。
  2. アプリケーション マニフェスト ファイルで、ソリューションが FullTrust アクセス許可を要求しているかどうかのチェック。FullTrust アクセス許可の要求は既定です。 FullTrust アクセス許可を要求している場合、ランタイムは次のチェックに進みます。 要求していない場合、ソリューションはインストールまたは更新されません。
  3. 配置マニフェスト ファイルが、Internet Explorer で制限されているサイト ゾーンに含まれているかどうかのチェック。含まれていない場合、ランタイムは次のチェックに進みます。 含まれている場合、ソリューションはインストールまたは更新されません。
  4. 配置マニフェスト ファイルが、信頼されていない証明書で署名されているかどうかのチェック。信頼されていない証明書で署名されていない場合、ランタイムは次のチェックに進みます。 信頼されていない証明書で署名されている場合、ソリューションはインストールまたは更新されません。
  5. 配置マニフェスト ファイルが、信頼されている発行証明書で署名されているかどうかのチェック。信頼されている発行証明書で署名されている場合、セキュリティ チェックが終了して、ソリューションがインストールまたは更新されます。 信頼されている発行証明書で署名されていない場合、ランタイムは次のチェックに進みます。
  6. ユーザーへのプロンプトの表示 (インストールを信頼するかどうかの確認) が無効になっていないかどうかのチェック。無効になっている場合、ソリューションはインストールまたは更新されません。 無効になっていない場合、ランタイムは次のチェックに進みます。
  7. ソリューションが、一覧に含まれているかどうかのチェック。含まれている場合、セキュリティ チェックが終了して、ソリューションがインストールまたは更新されます。 含まれていない場合、ランタイムは次のチェックに進みます。
  8. プロンプトで、ユーザーがソリューションのインストールを選択したかどうかのチェック。ユーザーがインストールを選択した場合、ソリューションはインストールまたは更新されます。 ユーザーがインストールを選択しなかった場合、ソリューションはインストールまたは更新されません。

次のセクションでは、ClickOnce 信頼プロンプト、信頼された証明書、および許可リストについて、詳しく説明します。

ClickOnce 信頼プロンプトについて

最初の練習で Microsoft Office ソリューションをインストールした際、発行者を確認できなかったことを示すダイアログ ボックスが表示されました。このダイアログ ボックスが、ClickOnce 信頼プロンプトです。信頼プロンプトは、カスタマイズをインストールするかどうかをユーザーに対して確認します。

ただし、インストールを信頼するかどうかのプロンプトは、ユーザーに対して表示しない方が適切です。一般的なユーザーには、正しい判断に必要な知識がありません。 実際、ユーザーにとって、信頼しない理由は思いもつかないでしょう。

信頼するかどうかの判断を求めるプロンプトは、次の 2 つの方法で表示しないようにすることができます。1 つ目の方法は、信頼された発行者の証明書で ClickOnce マニフェスト ファイルに署名することです。2 つ目の方法は、あらかじめソリューションを許可リストに追加することです。 どちらの方法でも、ユーザーにプロンプトが表示されることなく、インストールが行われます。

加えて、判断をユーザーに任せっきりにする方法と、判断をユーザーに委ねない方法の中間的な方法もあります。この方法の場合、発行元を確認できる証明書で、配置マニフェスト ファイルに署名することができます。 これにより、ClickOnce 信頼プロンプトは、発行元を確認できる表示に変わります。

デジタル証明書を使用する

発行者を確認でき、その発行者を信頼できるならば、その発行者のソフトウェアも信頼できます。このように、デジタル署名は身元の証明とも、また信頼の根拠ともなります。

ClickOnce を使用してソリューションを発行するには、デジタル証明書でアプリケーションおよび配置マニフェスト ファイルに署名する必要があります。図 15 に示す Project Designer の [署名] タブで、[ClickOnce マニフェストに署名する] がオンになっていることに注目してください。 また、ソリューションには、ClickOnce Demo_TemporaryKey.pfx ファイルも含まれています。

図 15. ClickOnce マニフェスト ファイルの署名に使用される証明書

Bb821233.bb821233_fig15(ja-jp,office.12).gif

.pfx ファイルは、個人用の証明書ファイルです。Visual Studio では、プロジェクトを作成すると、この証明書ファイルが作成されます。

**メモ:   **Visual Studio 2005 では、.pfx ファイルがプロジェクトの作成時にではなく、ソリューションの発行時に作成されます。

証明書には、公開鍵と秘密鍵が含まれます。Visual Studio は、これらの鍵を使用して、マニフェスト ファイルにデジタル署名を行います。デジタル署名は、公開後、誰によってもマニフェスト ファイルが改変されていないことを示す証拠になります。

ClickOnce は、デジタル証明書を使用し、発行者とソリューションのアクセス許可レベルを確認します。既定の証明書は、実際の運用向けではなく、開発向けなので、信頼された証明書ではありません。 したがって、この証明書が身元の証明や信頼の根拠になることはありません。それが、ソリューションをインストールした際、Visual Studio Tools for the Office System のランタイムによって、インストールの許可を求めるプロンプトが表示された理由です。

デジタル証明書は、信頼されたルート証明機関の証明書ストアにインストールされ、かつその期限が切れたり、無効になったりしていない場合に、身元の証明となります。また、デジタル証明書は、それが身元を示す証明書となり、かつユーザーのコンピュータ上の信頼された発行者の証明書ストアにインストールされている場合に、信頼の根拠になります。

信頼されたルート証明書を操作する

この練習では、信頼されたルート証明書で、ClickOnce マニフェストに署名します。その後、ユーザーにプロンプトを表示する方法で、ソリューションをインストールします。

ClickOnce マニフェストに署名するには

  1. Project Designer で、[署名] タブをクリックします。

  2. 既存の証明書の詳細を表示するには、[詳細情報] をクリックします。

    図 16 に示すような [証明書] ダイアログ ボックスが表示されます。この証明書は信頼されていないことが確認できます。 これは、身元の証明がないためです。

    図 16. 既定の証明書は信頼されていない

    Bb821233.bb821233_fig16(ja-jp,office.12).gif

  3. [OK] をクリックして、ダイアログ ボックスを閉じます。

    信頼された証明書は、パスワードで保護されていなければなりません。ソリューションの既存の証明書は、パスワードで保護されていません。したがって、新しい証明書を作成する必要があります。

  4. ClickOnce Demo_TemporaryKey.pfx ファイルを削除します。

  5. [テスト証明書の作成] をクリックします。

  6. パスワードを入力して確定し、[OK] をクリックします。

  7. 証明書ファイルの名前を ClickOnce Demo.pfx に変更します。

    **メモ:   **証明書ファイルの名前をこのように変更することは必ずしも必須ではありませんが、これにより証明書ファイルが信頼された証明書であることを示せます。

  8. [詳細情報] をクリックします。

    証明書ダイアログ ボックスに、[証明書のインストール] ボタンが表示されるようになります。

  9. [証明書のインストール] をクリックして、証明書のインポート ウィザードを表示し、[次へ] をクリックします。

  10. [証明書ストア] ページで、[証明書をすべて次のストアに配置する] チェック ボックスをオンにします。

  11. [参照] をクリックして、[証明書ストアの選択] ダイアログ ボックスを表示します。

  12. [信頼されたルート証明機関] (図 17) をクリックし、[OK] をクリックします。

    図 17. 証明書ストアにインストールされた証明書により、発行者が識別される

    Bb821233.bb821233_fig17(ja-jp,office.12).gif

  13. [次へ] をクリックし、[完了] をクリックします。

    証明書が本人からのものであることを Windows は検証できないことを示すセキュリティ警告が表示されます。[はい] をクリックして、証明書をインストールします。

  14. [証明書のインストール] をクリックします。

  15. [証明書] ダイアログ ボックスを閉じて、再度開きます。

    図 18 に示すように、[証明書] ダイアログ ボックスは、その証明書に身元の証明があることを示す表示になります。

    図 18. 証明書が身元を証明している

    Bb821233.bb821233_fig18(ja-jp,office.12).gif

  16. [OK] をクリックして、[証明書] ウィンドウを閉じます。

  17. Project Designer で、[発行] タブに切り替えます。

  18. [すぐに発行] をクリックします。

    更新されたバージョンのアプリケーションが、発行されたバージョンとは異なる鍵で署名されることを示すダイアログ ボックスが表示されると、[はい] をクリックして、発行されたアプリケーションを上書きします。

  19. ClickOnce Demo ソリューションをアンインストールします。

  20. Word ドキュメントを開きます。Setup.exe または .vsto ファイルをダブルクリックすることもできます。

Visual Studio Tools for the Office System のランタイムは、カスタマイズをダウンロードし、図 19 に示すように、そのカスタマイズを信頼するかどうかの判断を求めるプロンプトを表示します。発行者が確認されて、ダイアログ ボックスに表示されている点に注目してください。また、左下のアイコンが赤ではなく黄色になっています。

図 19. ClickOnce 信頼プロンプトによって、発行者が確認され、表示されている

Bb821233.bb821233_fig19(ja-jp,office.12).gif

**メモ:   **カスタマイズはインストールしないでください。カスタマイズのインストールは、次の練習で行います。

これで、ユーザーはこのカスタマイズの発行者を知ることができ、そのカスタマイズを信頼するかどうかを適切に判断できるようになります。

信頼された発行者の証明書を操作する

この練習では、信頼された発行者の証明書で、ClickOnce マニフェスト ファイルに署名します。その後、ユーザーにプロンプトを表示しない方法で、ソリューションをインストールします。

信頼された発行者の証明書で、マニフェスト ファイルに署名するには

  1. プロジェクト フォルダに移動します。

  2. ClickOnce Demo.pfx ファイルをダブルクリックして、証明書のインポート ウィザードを開始します。

  3. [次へ] を 2 回クリックします。

  4. 証明書のパスワードを入力し、[次へ] をクリックします。

  5. [証明書ストア] ページで、[証明書をすべて次のストアに配置する] チェック ボックスをオンにします。

  6. [参照] をクリックして、[証明書ストアの選択] ダイアログ ボックスを表示します。

  7. 図 20 に示すように、[信頼された発行者] を選択します。

    図 20. この証明書ストアにインストールされる証明書は、完全に信頼される

    Bb821233.bb821233_fig20(ja-jp,office.12).gif

  8. [OK] をクリックします。

  9. [次へ] をクリックし、[完了] をクリックします。

  10. Project Designer で、[発行] タブをクリックします。

  11. [すぐに発行] をクリックします。

  12. Word ドキュメントを開きます。Setup.exe または .vsto ファイルをダブルクリックすることもできます。

Visual Studio Tools for the Office System のランタイムは、信頼するかどうかの判断を求めるプロンプトをユーザーに表示せずに、カスタマイズをダウンロードおよびインストールします。

ユーザー コンピュータに証明書をインストールする

管理者は、必要な信頼レベルを決定したり、各ソリューションまたは企業全体で、信頼するかどうかの判断をユーザーに委ねるかどうかを決定したりすることができます。

ユーザーがカスタマイズをインストールする際に、プロンプトが表示されないようにするには、ユーザー コンピュータの適切な証明書ストアに、証明書が含まれている必要があります。インストールを自動化するには、証明書を証明書ファイルにエクスポートできます。 その後、ファイルをコピーして、各ユーザー コンピュータで証明書管理コンソール (certmgr.exe) を実行し、証明書をインストールします。この手順を以下に示します。

certmgr ?add ClickOnce Demo.cer ?s Root
certmgr ?add ClickOnce Demo.cer ?s TrustedPublisher

証明書をエクスポートするには、Microsoft 管理コンソールを使用します。

証明書をエクスポートするには

  1. デスクトップの [スタート] をクリックし、[ファイル名を指定して実行] をクリックします。次に、「MMC」と入力します。

  2. [ファイル] メニューで、[スナップインの追加と削除] をクリックします。

  3. [追加] をクリックします。

  4. 利用できるスナップインの一覧で、[証明書] をクリックして、[追加] をクリックします。

  5. プロンプトが表示されたら、[ユーザー アカウント] を選択し、[完了] をクリックします。次に、[OK] をクリックします。

  6. [証明書] ノードを配置し、[信頼された発行者] ノードを展開します。

  7. [証明書] サブノードをクリックします。右のウィンドウ領域に、証明書が表示されます。

  8. [操作] メニューで、[すべてのタスク] をポイントし、[エクスポート] をクリックします。証明書のエクスポート ウィザードを使用し、.cer という拡張子を持つファイルに証明書を保存します。

    **メモ:   **Visual Studio 2005 をインストールした場合、ローカル ドライブ:\\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin というパスに、certmgr.exe が見つかります。現在、Visual Studio 2008 では、このファイルはインストールされていません。

信頼された証明書を要求する

ユーザーに表示するプロンプトを制御し、信頼された証明書を要求することができます。これを行うには、\HKLM\Software\Microsoft\.NETFramework\Security\TrustManager\PromptingLevel というレジストリ キーを追加します。

**注意:   **レジストリの変更は、自己責任で行ってください。レジストリが破損すると、問題を解決するためにオペレーション システムの再インストールが必要になる場合があります。 マイクロソフトは、レジストリの問題の解決を保証しません。

各セキュリティ ゾーンに、次の文字列値を追加します。

  • MyComputer
  • LocalIntranet
  • Internet
  • TrustedSites
  • UntrustedSites

各セキュリティ ゾーンの値を、次のいずれかに設定します。

  • Enabled。信頼された証明書でソリューションが署名されていない場合、ユーザーにプロンプトが表示されます。これは、MyComputer、LocalIntranet、および TrustedSites ゾーンでの既定です。
  • AuthenticodeRequired。信頼されたルート証明機関の証明書でソリューションが署名されていない場合、ユーザーはソリューションをインストールできません。信頼された発行者の証明書でソリューションが署名されていない場合、ユーザーにプロンプトが表示されます。これは、Internet ゾーンの既定です。
  • Disabled。信頼された発行者の証明書でソリューションが署名されていない場合、ユーザーはソリューションをインストールできません。これは、UntrustedSites ゾーンの既定です。

信頼するかどうかの判断をユーザーに委ねない場合は、各セキュリティ ゾーンの値に Disabled を指定してください。

一覧

信頼された発行者の証明書で Microsoft Office ソリューションを署名し、その証明書をユーザーのコンピュータにインストールすると、ユーザーにプロンプトが表示されずに、ソリューションがインストールおよび更新されます。信頼された発行者の証明書を使う代わりに、ソリューションを一覧に追加することができます。 一覧とは、信頼されたソリューションのリストです。 Visual Studio Tools for the Office System は、レジストリを使用してこのリストを維持します。

ユーザーが ClickOnce 信頼プロンプトを使用してソリューションを信頼すると、Visual Studio Tools for the Office System はそのソリューションを一覧に追加します。ソリューションは、信頼されたソリューションのリストに含まれるため、その後の更新では、ユーザーにプロンプトは表示されません。

ソリューションは、手動で一覧に追加したり、削除したりできます。これを行うには、UserInclusionList クラスを使用します。このクラスは、Microsoft.VisualStudio.Tools.Applications.Runtime.Security 名前空間にあります。

この練習では、ソリューションを一覧に追加し、プロンプトが表示されない方法でソリューションをインストールします。まず、Microsoft Office ソリューションを作成します。

ソリューションを許可リストに追加してから、ソリューションをインストールするには

  1. ClickOnce Demo 2 という Word 2007 Template ソリューションを作成します。

  2. ThisDocument.vb ファイルを開きます。

  3. ThisDocument_Startup メソッドに、次の内容を追加します。

    Try
        ' Insert the date into the document.
        Me.Content.InsertAfter(DateTime.Today.ToShortDateString())
        ' Go to the end of the line and add two paragraph returns.
        With Me.Application.Selection
            .EndKey(Word.WdUnits.wdLine)
            .TypeParagraph()
            .TypeParagraph()
        End With
    Catch
        MessageBox.Show( _
            "The date could not be added to the document.")
    End Try
    
  4. このソリューションを発行します。

    次に、ソリューションを一覧に追加します。

  5. Windows Forms Application ソリューションを作成します。

  6. Microsoft.VisualStudio.Tools.Office.Runtime への参照を追加します。

  7. フォームに、テキスト ボックスを 2 つ追加します。2 つ目のテキスト ボックスは Multiline にしてください。

  8. フォームにボタンを追加します。

  9. Text プロパティを Add に設定します。

  10. Form1.vb コード ファイルに、次のコードを追加します。

    Imports Microsoft.VisualStudio.Tools.Office.Runtime.Security
    
  11. 次の宣言を追加します。

    Private solutionLocation As Uri
    Private entry As AddInSecurityEntry
    
  12. 次のコードをボタンの Click イベント ハンドラに追加します。

    solutionLocation = New Uri(TextBox1.Text)
    entry = New AddInSecurityEntry(solutionLocation, TextBox2.Text)
    UserInclusionList.Add(entry)
    
  13. アプリケーションを実行します。

  14. 最初のテキスト ボックスに、配置マニフェストの場所を入力します。以下に例を示します。

    http://vistavpc/ClickOnce Demo 2/ClickOnce Demo 2.vsto

    または以下のように入力します。

    \\vistavpc\ClickOnce Demo 2\ClickOnce Demo 2.vsto

  15. 発行場所に移動し、配置マニフェスト ファイルを開きます。

  16. RSAKeyValue 要素を見つけます。

  17. すべての子要素を含めて、要素の内容をコピーします。

  18. 次の例に示すように、その XML を、フォーム上の 2 つ目のテキスト ボックスに貼り付けます。

    <RSAKeyValue>
      <Modulus>xS7LuQGcYZYijaXJzuYRiqpHud3XYBsXZv8ELmbUzYA0Pc410pmUF0XAnGOkkEDH7GZHCfGKmdKdT4j7m56iQooL
      QuGoJSpaoqiTV0loVDPfByY+7yvtm424znaj2SkJ0ro4adeF9TOY30EON5pDo4E/bzTr1c+ToYofA0maVo8=</Modulus>
      <Exponent>AQAB</Exponent>
    </RSAKeyValue>
    
  19. [追加] をクリックします。

最後に、ユーザーにプロンプトを表示しない方法で、ソリューションをインストールします。

  1. 発行場所に戻ります。
  2. ClickOnce Demo 2.dotx を、発行場所からデスクトップなどの別の場所にコピーします。
  3. Word テンプレートを開きます。
  4. Visual Studio Tools for the Office System のランタイムは、信頼するかどうかの判断を求めるプロンプトをユーザーに表示せずに、カスタマイズをダウンロードおよびインストールします。

まとめ

Visual Studio Tools for the Office Ssystem のアドインまたはカスタマイズには、実行するためのアクセス許可が必要です。任意のバージョンの Visual Studio Tools for the Office System を使用して Microsoft Office 2003 ソリューションをビルドしている場合や、Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System (Second Edition) を使用して 2007 Office システムをビルドしている場合は、アセンブリに対して FullTrust アクセス許可を付与する必要があります。

しかし、既定でこれらのソリューションには、実行するためのアクセス許可が付与されません。この点が、Visual Studio Tools for the Office System を扱う開発者の間で、混乱を招き、操作を難しくする原因となっていました。 これを解決するためには、いくつかの方法が文書で紹介されています。 しかし、これらの方法には追加の手順が必要であり、それらの手順は開発者の間で必ずしも周知徹底されていません。

この記事で紹介したように、Visual Studio Tools for the Office System は、2007 Office システムのソリューションの配置に ClickOnce を使用します。ClickOnce は、既定で Microsoft Office ソリューションに FullTrust アクセス許可を付与します。 また、過去に必要であった追加の手順は、ビルトインされています。 これは、開発者にとって朗報です。

ClickOnce は使いやすい上に、ソリューションの配置を制御するためのさまざまな方法を提供します。したがって、使用するソリューションや顧客に合った方法で、この記事で紹介したさまざまなテクニックを使用できます。

著者について

Robert Green 氏は、開発者、ライター、そしてトレーナーでもあります。同氏は、MCW Technologies のシニア コンサルタントです。 また、Visual Studio Tools for the Office System の MVP であり、Microsoft Visual Basic、Microsoft Visual C#、および Microsoft Windows Workflow Foundation の AppDev コースウェアの共著者です。 MCW に移籍する前、同氏は Visual Studio Tools for the Office System のプロダクト マネジャーとして、マイクロソフトに勤務していました。

追加情報

詳細については、次の情報を参照してください。