チュートリアル : 配置マニフェストを使用したドキュメント レベルのカスタマイズの配置 (2003 システム)
更新 : 2007 年 11 月
対象 |
---|
このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。 プロジェクトの種類
Microsoft Office のバージョン
詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。 |
このチュートリアルでは、Microsoft Office Excel または Microsoft Office Word 用のドキュメント レベルのカスタマイズをサーバー上のネットワーク共有に配置する方法を示します。このチュートリアルの終了時には、サーバー上のソリューションを開発用コンピュータから実行できるようになります。ドキュメント レベルのカスタマイズの詳細については、「ドキュメント レベルのカスタマイズのアーキテクチャ」を参照してください。
稼動環境においては、Visual Studio Tools for Office ソリューションをまずテスト サーバーに発行し、IT 部門の承認後、運用サーバーに再配置することがよくあります。このチュートリアルでは、ソリューションを開発用コンピュータの一時的な場所に発行し、その後、一時的な場所からソリューションをサーバーに再配置します。ソリューションの配置に関するオプションの詳細については、「配置モデル (2003 システム)」を参照してください。
このチュートリアルでは、次のタスクについて説明します。
発行ウィザードを使用して、ソリューションを開発用コンピュータ上の場所に発行します。
ソリューションをローカル コンピュータからサーバー上のネットワーク共有へ手動で再配置します。
ドキュメントに埋め込まれているアプリケーション マニフェストをプログラムで変更して、新しい配置マニフェストの場所を指すようにします。
配置マニフェストを編集して、外部アプリケーション マニフェストの新しい場所を指すようにします。
外部アプリケーション マニフェストを編集して、新しいアセンブリの場所および配置マニフェストを指すようにします。
前提条件
このチュートリアルを完了するには、次のコンポーネントが必要です。
Visual Studio Tools for Office (Visual Studio 2008 Professional および Visual Studio Team System のオプションの要素)
Microsoft Office Word 2003 または Microsoft Office Excel 2003
メモ : このチュートリアルでは、Word ソリューションを配置することを前提としています。Excel ソリューションを使用してチュートリアルを実行する場合は、すべてのコード例および XML の例で、Word プロジェクトの名前を Excel プロジェクトの名前に置き換えてください。
配置用ネットワーク サーバーへのアクセス。このチュートリアルでは、ソリューションを \\DeployServer\ShareFolder というネットワーク共有に再配置することを前提としています。
開発用コンピュータにおける管理者特権 (ネットワーク上の場所のセキュリティ ポリシーを設定できるようにするため)。
プロジェクトの作成
この手順では、Word 文書プロジェクトを作成します。
新しいプロジェクトを作成するには
Office 2003 のプロジェクト テンプレートを使用して、WordDeployment という名前の Word 文書プロジェクトを作成します。
ウィザードで、[新規ドキュメントの作成] をクリックします。詳細については、「方法 : Visual Studio Tools for Office プロジェクトを作成する」を参照してください。
新しい Word 文書がデザイナで開き、WordDeployment プロジェクトがソリューション エクスプローラに追加されます。
ドキュメントの分離コードの追加
ドキュメントを開いたときにソリューションが実行されていることを確認するには、プロジェクトにコードを追加する必要があります。このチュートリアルでは、ドキュメントの Startup イベント ハンドラにメッセージ ボックスを追加します。
初期化イベントにメッセージ ボックスを追加するには
ソリューション エクスプローラの ThisDocument.vb または ThisDocument.cs を右クリックし、ショートカット メニューの [コードの表示] をクリックします。
ThisDocument クラス内の Startup イベント ハンドラに次のコードを追加して、初期化処理中にメッセージ ボックスを表示するようにします。
Private Sub ThisDocument_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Startup MessageBox.Show("The document is deployed correctly.") End Sub
private void ThisDocument_Startup(object sender, System.EventArgs e) { MessageBox.Show("The document is deployed correctly."); }
F5 キーを押してプロジェクトを実行します。
Word が起動し、メッセージ ボックスが表示されます。
メッセージ ボックスを閉じます。
Word を終了します。
ソリューションの発行
このプロセスの最初の配置手順では、ソリューションをローカル コンピュータの一時的な場所に発行します。
ソリューションを発行するには
ソリューション エクスプローラでプロジェクト ノードを右クリックします。
ショートカット メニューの [発行] をクリックします。
発行ウィザードが表示されます。
[このアプリケーションを発行する場所を指定します] ボックスに「C:\TestDeploy」と入力します。
[完了] をクリックします。
ソリューション ドキュメントと配置マニフェストが C:\TestDeploy にコピーされます。また、ソリューション アセンブリ、更新済みのアプリケーション マニフェスト、およびソリューション ドキュメントと配置マニフェストのコピーが C:\TestDeploy\WordDeployment_1.0.0.0 にコピーされます。詳細については、「ドキュメント レベルのカスタマイズの配置 (2003 システム)」を参照してください。
[ファイル] メニューの [ソリューションを閉じる] をクリックして、Visual Studio で WordDeployment ソリューションを閉じます。
メモ : アセンブリには実行のアクセス許可がまだないため、ソリューションを実行しようとするとエラーがスローされます。後の手順で、セキュリティ ポリシーを更新して、完全信頼のアクセス許可をアセンブリに与えます。
ソリューションの発行時には、ソリューション ドキュメントに埋め込まれたアプリケーション マニフェストが、配置マニフェストの完全パスを指しています。ソリューション ファイルを別の場所に再配置する場合は、埋め込まれたアプリケーション マニフェストを更新して、配置マニフェストの新しい場所を指すようにする必要があります。また、配置マニフェストと外部アプリケーション マニフェストも更新して、新しいファイルの場所を指すようにする必要があります。
埋め込まれたアプリケーション マニフェストの更新
埋め込まれたアプリケーション マニフェストを編集するには、Visual Studio Tools for Office に用意されている ServerDocument クラスを使用します。ServerDocument クラスを使用するときは、Visual Studio Tools for Office ソリューションではなく、コンソール プロジェクトなどの新しいプロジェクト内でコードを実行し、Visual Studio Tools for Office ソリューション ドキュメントを閉じる必要があります。
メモ : |
---|
Visual Studio Tools for Office には、埋め込まれたアプリケーション マニフェストを編集するために使用するツールを作成する方法を示す例が用意されています。詳細については、「ServerDocument サンプル」を参照してください。 |
埋め込まれたアプリケーション マニフェストを更新するには
新しいコンソール アプリケーション プロジェクトを作成します。
Microsoft.VisualStudio.Tools.Applications.Runtime アセンブリおよび System.Windows.Forms アセンブリへの参照をこのプロジェクトに追加します。
Program.cs ファイルまたは Module1.vb ファイルを開き、ファイルの先頭に次の Imports ステートメントまたは using ステートメントを追加します。
Imports Microsoft.VisualStudio.Tools.Applications.Runtime
using Microsoft.VisualStudio.Tools.Applications.Runtime;
Main 関数に次のコードをコピーします。このコードは、ソリューション ドキュメントの埋め込まれたアプリケーション マニフェストへのアクセスを提供する ServerDocument を作成します。さらにこのコードは、新しい配置マニフェストへのパスを DeployManifestPath プロパティに代入してから、ServerDocument を保存して閉じます。
Dim sd As ServerDocument = Nothing Try sd = New ServerDocument("C:\TestDeploy\WordDeployment.doc") sd.AppManifest.DeployManifestPath = _ "\\DeployServer\ShareFolder\WordDeployment.application" sd.Save() Finally If Not sd Is Nothing Then sd.Close() End If End Try
ServerDocument sd = null; try { sd = new ServerDocument(@"C:\TestDeploy\WordDeployment.doc"); sd.AppManifest.DeployManifestPath = @"\\DeployServer\ShareFolder\WordDeployment.application"; sd.Save(); } finally { if (sd != null) { sd.Close(); } }
F5 キーを押してプロジェクトを実行します。
埋め込まれたアプリケーション マニフェストが更新されている間だけコンソール ウィンドウが表示され、すぐに閉じます。
配置マニフェストの更新
これで、Visual Studio Tools for Office ソリューション ドキュメントに埋め込まれたアプリケーション マニフェストが更新されました。次は、配置マニフェストを更新して、外部アプリケーション マニフェストの新しい場所を指すようにする必要があります。
配置マニフェストを更新するには
配置マニフェストをメモ帳などのテキスト エディタで開きます。配置マニフェストは発行フォルダ C:\TestDeploy に格納されています。名前は WordDeployment.application です。
<dependentAssembly> 要素の codebase 属性を、外部アプリケーション マニフェストの最終的な配置場所の完全パスに設定します。詳細については、「<dependentAssembly> 要素 (Visual Studio Tools for Office リファレンス)」を参照してください。このチュートリアルでは、この属性は次の例のようになります。
<dependentAssembly codebase="\\DeployServer\ShareFolder\ WordDeployment_1.0.0.0\WordDeployment.dll.manifest"
配置マニフェスト ファイルを保存して閉じます。
外部アプリケーション マニフェストの更新
配置マニフェストの更新に加え、外部アプリケーション マニフェストも編集して、ソリューション アセンブリおよび配置マニフェストの最終的な配置場所を指すようにする必要があります。Visual Studio Tools for Office ソリューションを発行するたびに、ソリューション アセンブリの現在のバージョンを指す新しい外部アプリケーション マニフェストが生成されます。
外部アプリケーション マニフェストを更新するには
アプリケーション マニフェストをメモ帳などのテキスト エディタで開きます。アプリケーション マニフェストは発行フォルダ C:\TestDeploy\WordDeployment_1.0.0.0 に格納されています。名前は WordDeployment.dll.manifest です。
<dependency> 要素の子である <installFrom> 要素を検索し、codebase 属性を現在のソリューション アセンブリの完全パスに設定します。詳細については、「<installFrom> 要素 (Visual Studio Tools for Office リファレンス)」を参照してください。このチュートリアルでは、この属性は次の例のようになります。
<dependentAssembly codebase="\\DeployServer\ShareFolder\ WordDeployment_1.0.0.0\WordDeployment.dll"
<assembly> 要素の子である <installFrom> 要素を検索し、codebase 属性を配置マニフェストの完全パスに設定します。詳細については、「<installFrom> 要素 (Visual Studio Tools for Office リファレンス)」を参照してください。このチュートリアルでは、この属性は次の例のようになります。
<dependentAssembly codebase="\\DeployServer\ShareFolder\WordDeployment.application"
アプリケーション マニフェスト ファイルを保存して閉じます。
ソリューション ファイルのサーバーへのコピー
これで、マニフェストの編集が完了しました。次は、ソリューション ファイルをサーバー上の最終的な配置先にコピーします。
ソリューション ファイルをサーバーにコピーするには
ネットワーク ファイル共有 \\DeployServer\ShareFolder の下に WordDeployment_1.0.0.0 フォルダを作成します。
ソリューション ドキュメントと配置マニフェストを \\DeployServer\ShareFolder にコピーします。
ソリューション アセンブリとアプリケーション マニフェストを \\DeployServer\ShareFolder\WordDeployment_1.0.0.0 にコピーします。
ネットワーク フォルダへの完全な信頼の付与
Visual Studio Tools for Office ソリューションをネットワーク フォルダから実行するには、開発用コンピュータのセキュリティ ポリシーで、ネットワーク フォルダに対して完全な信頼を付与する必要があります。コード アクセス セキュリティ ポリシー ツール (Caspol.exe) を使用すると、セキュリティ ポリシーをコマンド プロンプトから変更できます。ネットワーク上の場所に信頼を付与するには、管理者特権が必要です。また、セキュリティ ポリシーの変更はコンピュータ (Machine) レベルで行う必要があります。
メモ : |
---|
この手順は、このチュートリアルを実行するためのものです。アセンブリまたはディレクトリの安全性が不明の場合は、この手順を実行しないでください。実行すると、信頼が付与されてしまいます。アクセス許可の付与および削除の詳細については、「方法 : フォルダおよびアセンブリにアクセス許可を付与する (2003 システム)」および「方法 : フォルダおよびアセンブリからアクセス許可を削除する (2003 システム)」を参照してください。 |
ネットワーク フォルダに完全な信頼を付与するには
Visual Studio コマンド プロンプトで、次のコマンドを入力します。
caspol -m -ag LocalIntranet_Zone -url \\DeployServer\ShareFolder\* FullTrust -n "Remote Deployment" -d "Deployment Walkthrough"
ソリューションのテスト
これで、ソリューションをテストして、開発用コンピュータからドキュメントを開いたときにコードが実行されることを確認する準備ができました。
配置をテストするには
開発用コンピュータで、\\DeployServer\ShareFolder\ にあるファイル WordDeployment.doc を開きます。
メッセージ ボックスが表示されることを確認します。
次の手順
ソリューションの配置は、Microsoft Windows Installer (.msi) ファイルを使用しても実行できます。詳細については、「チュートリアル : Windows インストーラ ファイルを使用したドキュメント レベルのカスタマイズの配置 (2003 システム)」を参照してください。
参照
処理手順
チュートリアル : Windows インストーラ ファイルを使用したドキュメント レベルのカスタマイズの配置 (2003 システム)