Darryn Lavery、Microsoft Corporation Lubo Birov、Microsoft Corporation McLean Schofield、Microsoft Corporation Brian A. Randell、MCW Technologies, LLC (英語)
2007 年 3 月発行2007 年 8 月更新日本語版最終更新日 2007 年 12 月 5 日
適用対象: Microsoft Visual Studio 2008 Beta 2 2007 Microsoft Office System Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System Microsoft Visual Studio 2005 Microsoft Visual Studio 2005 Tools for the Microsoft Office System Microsoft Office 2003
OfficeVSTO2005SEWindowsInstallerV2.msi (英語) をダウンロードする
要約: Visual Studio 2005 のセットアップ プロジェクトを使用して Windows インストーラのパッケージを作成するMicrosoft Visual Studio 2005 Tools for the 2007 Microsoft Office System ソリューションの配置に関する 2 つのウォークスルーを紹介します。
概要 ウォークスルー: Outlook アドインのセットアップ プロジェクトを拡張する ウォークスルー: Windows インストーラ パッケージを作成して Visual Studio 2005 Tools for Office SE ソリューションを配置する まとめ 追加情報
この第 2 部では、Visual Studio 2005 のセットアップ プロジェクトを使用して Windows インストーラのパッケージを作成する Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System (Visual Studio 2005 Tools for Office Second Edition または VSTO 2005 SE) ソリューションを配置する方法を説明したウォークスルーを 2 つ紹介します。これらのウォークスルーは、Microsoft Visual Studio 2008 Beta 2 で作成した Microsoft Office 2003 のプロジェクトにも適用できます。
メモ: これらのウォークスルーは、2007 Microsoft Office System のアプリケーションに基づいた Visual Studio 2008 のプロジェクトには適用できませんが、代わりに ClickOnce 配置テクノロジを使用します。
1 つ目のウォークスルーでは、VSTO 2005 SE を使用して作成した Microsoft Office Outlook 2003 または 2007 のアドインを拡張して、必須コンポーネントをインストールしたり、カスタマイズ アセンブリに信頼を付与したりできる方法を説明しています。この方法は、Office 2003 または 2007 リリースの VSTO 2005 SE で作成できるアドインの、すべての種類に適用できます。
2 つ目のウォークスルーでは、エンドツーエンドの手順を紹介して、Microsoft Office Excel 2003 またはMicrosoft Office Word 2003 ソリューション用の Windows インストーラ パッケージを作成します。VSTO 2005 SE は、Microsoft Office の 2003 および 2007 リリースに、アプリケーションレベルでのアドイン サポートを追加します。2007 リリースのドキュメント作成ソリューションに対する、新しいサポートは提供していません。ただし、Office 2003 のドキュメント ソリューションを、Microsoft Office Word 2007 または Microsoft Office Excel 2007 で実行することはできます。
重要: このウォークスルーを始める前に、「Windows インストーラを使用して Visual Studio 2005 Tools for Office Second Edition ソリューションを配置する (Part 1 of 2)」に記載されている指示を読んで、実行してください。
このセクションでは、Outlook アドイン プロジェクトを作成するときに Visual Studio で定義するセットアップ プロジェクトを拡張する方法について説明します。ここで説明する手順の実行方法は、次のとおりです。
この手順では、Outlook 2003 アドインのプロジェクトを Visual C# で作成します。
メモ: ここに示す手順は Outlook 2003 だけでなく、対応済みの VSTO 2005 SE ホスト アプリケーションすべてに適用できます。
この後半では、厳密な名前と場所に基づいて、カスタマイズ アセンブリに信頼を付与しますが、最初にアセンブリに署名する必要があります。
このステップでは、Outlook アドインの ThisAddIn_Startup イベント ハンドラに、メッセージ ボックスを追加します。これにより、Outlook の起動時にソリューションが動作していることを確認できます。
private void ThisAddin_Startup(object sender, System.EventArgs e) { MessageBox.Show( "The Outlook add-in has been deployed successfully."); }
ブートストラップがインストールする必須コンポーネントを追加します。起動条件の追加については、後のステップで説明します。
用意されたカスタム動作のサンプルを使用して、カスタマイズ アセンブリに信頼を付与します。
ヒント: 既定では、{SamplesDir} ディレクトリは C:\Program Files\Microsoft Visual Studio 2005 Tools for Office SE Resources\VSTO2005SE Windows Installer Sample Version2\ です。
/assemblyName="OutlookAddin.dll" /targetDir="[TARGETDIR]\" /solutionCodeGroupName="MyCompanyName.OutlookAddin" /solutionCodeGroupDescription="Code group for OutlookAddin" /assemblyCodeGroupName="OutlookAddin" /assemblyCodeGroupDescription="Code group for OutlookAddin" /allUsers=[ALLUSERS]
ヒント: 企業名に空白文字が含まれていても、余分に引用符を付ける必要はありません。
/solutionCodeGroupName="MyCompanyName.OutlookAddin"
メモ: カスタム動作で Commit メソッドを上書きしていませんが、Windows の Installer 基本クラスによって実装が提供されています。そのため、このままでもメソッドを呼び出すことができます。ただし、そのメソッドに、カスタム動作データは必要ありません。
ユーザーが Setup.exe を実行すると、Windows インストーラは必須コンポーネントをチェックし、必要に応じてそれらをインストールします。または、ユーザーが .msi ファイルをダブルクリックして、ソリューションをインストールすることもできます。その場合、必須コンポーネントはインストールされず、ソリューションは実行できません。それ以外にも、必要なリソースが存在しないために、Setup が失敗する可能性があります。たとえば、カスタム動作には .NET Framework が必要な場合があります。
このセクションでは、起動条件エディタを使用して .msi ファイルに起動条件を追加し、特定の依存関係がインストールされなければインストールされないという方法を説明します。
VSTO 2005 SE ランタイムの起動条件を追加する
Software\Microsoft\vsto runtime Setup\v2.0.50727
VSTORTVERSION >= "#2"
ソリューションを実行するユーザーの中に、Windows の設定を英語以外にしているユーザーがいる場合は、Visual Studio 2005 Tools for Office Language Pack が必要です。これがないと、ランタイムのメッセージを Windows と同じ言語で表示できません。起動条件を追加して、Language Pack をチェックします。
VSTO 2005 SE ランタイムおよび Visual Studio 2005 Tools for Office Language Pack の起動条件を作成したときには、必ず [対象コンピュータ上の必要条件] ノードを右クリックしてください。これにより、検索条件と対応する起動条件が作成されます。
Windows インストーラをテストする場合は、インストーラを開発用のコンピュータ以外で実行します。開発用のコンピュータには、多くの必須コンポーネントが既にインストールされているためです。ブートストラップのテストは、Setup.exe ファイルを実行して行います。最初にセットアップ プロジェクトを構築することを忘れないでください。
このセクションでは、Excel または Word ドキュメント ベースのソリューション向けに、Windows インストーラ パッケージを作成する方法を説明します。この例は Excel のソリューションを配置する方法になっていますが、Word のソリューションを配置する場合も、同じステップを使用できます。このウォークスルーを実行するには、開発コンピュータには、VSTO 2005 SE と Office 2003 をインストールしておく必要があります。また、ソリューションは Office 2007 をインストールしてあるコンピュータにインストールすることもできます。
このウォークスルーでは、次の手順の実行方法を説明します。
このステップでは、Excel ブックのプロジェクトを Visual C# で作成します。
この後半では、厳密な名前とアセンブリの場所に基づいて、カスタマイズ アセンブリに信頼を付与しますが、最初に、アセンブリに署名する必要があります。
このステップでは、ブックの Microsoft.Office.Tools.Excel.Workbook.Startup イベント ハンドラに、メッセージ ボックスを追加します。これにより、ドキュメントを開いたときにソリューションが動作していることを確認できます。
private void ThisWorkbook_Startup(object sender, System.EventArgs e) { MessageBox.Show("The document has been deployed successfully."); }
この手順で作成するセットアップ プロジェクトをコンパイルすると、ソリューションの Windows インストーラ ファイルを作成できます。
[ソリューション エクスプローラ] にセットアップ プロジェクトが表示されます。既定では、このセットアップ プロジェクトを使用して構築した Windows インストーラ ファイルには、ユーザーがソリューションのインストール場所を指定できるようにするダイアログ ボックスが含まれています。
このステップでは、ExcelApplication プロジェクトのプライマリ出力をセットアップ プロジェクトに追加します。ExcelApplication プロジェクトのプライマリ出力は、ブックとソリューションのアセンブリで構成されています。
プロジェクトのプライマリ出力をセットアップ プロジェクトに追加すると、Visual Studio により依存関係が検出されます。これらの依存関係は、DLL 別に一覧表示できます。次に、これらの DLL の依存関係を除外します。これらの DLL は、必須コンポーネント パッケージに含まれ、そのパッケージは後で依存関係として追加するためです。
このステップでは、既に「Windows インストーラを使用して Visual Studio 2005 Tools for Office Second Edition ソリューションを配置する (Part 1 of 2)」で説明した開発環境が整っているものと仮定しています。
セットアップ プロセスの起動方法は、2 通りあります。
重要: これらの必須コンポーネントをインストールするには、ユーザーには管理者権限が必要です。権限がない場合は、別の配置方法、たとえばグループ ポリシーやシステム管理ソフトウェア (SMS) などを考慮する必要があります。
ブートストラップがインストールする必須コンポーネントを追加します。起動条件は、後のステップで追加します。
Visual Studio Tools for Office ソリューションを実行する場合、事前にカスタマイズ アセンブリが FullTrust 許可を持っている必要があります。付属のソース コードに含まれているサンプルのカスタム動作では、ユーザーのコンピュータにインストールされるアセンブリに許可を与える方法を示しています。
/assemblyName="ExcelApplication.dll" /targetDir="[TARGETDIR]\" /solutionCodeGroupName="MyCompanyName.ExcelApplication" /solutionCodeGroupDescription="Code group for ExcelApplication" /assemblyCodeGroupName="ExcelApplication" /assemblyCodeGroupDescription="Code group for ExcelApplication" /allUsers=[ALLUSERS]
/solutionCodeGroupName="MyCompanyName.ExcelApplication"
メモ: カスタム動作では Commit メソッドを上書きしていませんが、Windows の Installer 基本クラスによって実装が提供されています。そのため、このままでもメソッドを呼び出すことができます。ただし、そのメソッドに、カスタム動作データは必要ありません。
プロジェクトの実行に先立って F5 キーを押すと、構築処理により、アセンブリの相対パスをポイントするように、ブックに埋め込まれたアプリケーション マニフェストが編集されます。インストールの後、ブックとアセンブリのフォルダを同じにしておく場合は、埋め込まれたアプリケーション マニフェストを変更する必要はありません。また、このセクションを無視してもかまいません。ただし、インストール後にユーザーがブックを別のフォルダに移動できるようにする場合は、アプリケーション マニフェストを編集して、アセンブリの完全なパスをポイントする必要があります。これは、Excel テンプレートのプロジェクトや Word テンプレートのプロジェクトで、特に重要です。テンプレートから作成されるブックやドキュメントは、通常、テンプレートの場所とは別の場所にあるからです。
サンプルのカスタム動作は作成済みなので、このカスタム動作をセットアップ プロジェクトに追加します。
メモ: カスタム動作では Commit メソッド、Rollback メソッド、および Uninstall メソッドを上書きしていませんが、Windows の Installer 基本クラスによって実装が提供されています。したがって、メソッドを呼び出す必要があります。ただし、それらのメソッドに、これらにカスタム動作データは必要ありません。
/targetDir="[TARGETDIR]/" /documentName="ExcelApplication.xls" /assemblyName="ExcelApplication.dll"
Windows インストーラをテストする場合は、インストーラを開発用のコンピュータ以外で実行します。開発用のコンピュータには、多くの必須コンポーネントが既にインストールされているためです。セットアップ プロジェクトを構築し、Setup.exe ファイルを実行して、ブートストラップをテストします。
ここでは、Visual Studio のセットアップ プロジェクトを使用して Windows インストーラ パッケージを作成して、Microsoft Office ソリューションを配置する方法を説明しました。ウォークスルーでは、必要な必須コンポーネントをインストールする方法やカスタマイズ アセンブリに信頼を付与する方法、ドキュメントに合わせてカスタマイズ アセンブリの場所を更新する方法を示しました。
配置プロセスの概要については、「Windows インストーラを使用して Visual Studio 2005 Tools for Office Second Edition ソリューションを配置する (Part 1 of 2)」を参照してください。
コードのセキュリティ
再頒布可能パッケージ