チュートリアル : ネットワーク フォルダへのドキュメントとアセンブリの配置 (2003 システム)
更新 : 2007 年 11 月
対象 |
---|
このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。 プロジェクトの種類
Microsoft Office のバージョン
詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。 |
このチュートリアルでは、ドキュメントとアセンブリがネットワーク コンピュータ上のフォルダに配置されるようにドキュメント レベルのカスタマイズを配置する方法について説明します。この種類の配置は、ネットワーク/ネットワーク配置モデルと呼ばれます。
ソリューションの配置に関するオプションの詳細については、「配置モデル (2003 システム)」を参照してください。ドキュメント レベルのカスタマイズの詳細については、「ドキュメント レベルのカスタマイズのアーキテクチャ」を参照してください。
このチュートリアルでは、次のタスクについて説明します。
ドキュメントに埋め込まれたアプリケーション マニフェストがアセンブリを指すように編集します。
ネットワーク フォルダに格納された Visual Studio Tools for Office ソリューション アセンブリに完全な信頼を付与します。
前提条件
このチュートリアルを完了するには、次のコンポーネントが必要です。
Visual Studio Tools for Office (Visual Studio 2008 Professional および Visual Studio Team System のオプションの要素)
Microsoft Office Word 2003 または Microsoft Office Excel 2003
メモ : このチュートリアルでは、Word ソリューションを配置することを前提としています。Excel ソリューションを使用してチュートリアルを実行する場合は、すべてのコード例で、Word プロジェクトの名前を Excel プロジェクトの名前に置き換えてください。
配置用ネットワーク コンピュータへのアクセス
開発用コンピュータにおける管理者特権 (セキュリティ ポリシーを設定できるようにするため)
配置するソリューションの作成
最初に、配置する基本の Visual Studio Tools for Office ソリューションを作成します。配置するソリューションが既に存在する場合は、このセクションを省略して「埋め込まれたアプリケーション マニフェストの編集」に進んでください。
配置するソリューションを作成するには
Office 2003 のプロジェクト テンプレートを使用して、WordDeployment という名前の Word 文書プロジェクトを作成します。
ウィザードで、[新規ドキュメントの作成] をクリックします。詳細については、「方法 : Visual Studio Tools for Office プロジェクトを作成する」を参照してください。
ソリューション エクスプローラで、ThisDocument コード ファイルを右クリックし、[コードの表示] をクリックします。
ThisDocument_Startup イベント ハンドラに次のコードを追加します。このコードを追加すると、ドキュメントが開いたときにメッセージが表示され、ソリューションが正しく配置されたかどうかを簡単に確認できます。
MessageBox.Show("The deployment is successful")
MessageBox.Show("The deployment is successful");
Startup イベントの詳細については、「Visual Studio Tools for Office プロジェクトのイベント」を参照してください。
F5 キーを押して、プロジェクトをビルドおよび実行します。メッセージが表示されることを確認します。
Word を終了します。
Visual Studio でソリューションを閉じます。
ドキュメントが、Word のインスタンスやプロジェクト デザイナで開かれていないことを確認します。ドキュメントが開かれていると、後の手順で行われる ServerDocument によるドキュメントへのアクセスの試みが失敗します。
埋め込まれたアプリケーション マニフェストの編集
ソリューションのビルド時には、ドキュメントによって、アセンブリがドキュメントと同じフォルダにあるものと想定されます。アセンブリの場所は、ドキュメントに埋め込まれているアプリケーション マニフェストに保存されます。ドキュメントとアセンブリを別のフォルダに配置した場合は、埋め込まれているアプリケーション マニフェストを編集して、新しいアセンブリ パスを指定する必要があります。
次の手順では、ServerDocument クラスを使用して、ドキュメントに埋め込まれているアプリケーション マニフェストがカスタマイズ アセンブリの新しい場所を指すように編集します。ServerDocument を使用して埋め込まれたアプリケーション マニフェストを編集するためのコードは、配置するドキュメントに関連付けられている Visual Studio Tools for Office プロジェクト アセンブリの外に指定する必要があります。
埋め込まれているアプリケーション マニフェストを編集するには
新しいコンソール アプリケーション プロジェクトを作成します。詳細については、「方法 : ソリューションおよびプロジェクトを作成する」を参照してください。
Microsoft.VisualStudio.Tools.Applications.Runtime.dll アセンブリへの参照を新しいプロジェクトに追加します。
次の using ステートメント (C#) または Imports ステートメント (Visual Basic) を Program.cs または Module1.vb コード ファイルの一番上に追加します。
Imports Microsoft.VisualStudio.Tools.Applications.Runtime
using Microsoft.VisualStudio.Tools.Applications.Runtime;
次のコードを Main メソッドに追加して、埋め込まれているアプリケーション マニフェストを更新します。full document path は、開発用コンピュータのビルド場所におけるドキュメントの完全パス (たとえば project folder\bin\debug\WordDeployment.doc) に置き換えます。full assembly path は、配置先のネットワーク フォルダにおけるアセンブリの完全パス (たとえば \\DeploymentServer\DeploymentFolder\WordDeployment.dll) に置き換えます。
Dim sd As ServerDocument = Nothing Try sd = New ServerDocument("full document path") sd.AppManifest.Dependency.AssemblyPath = _ "full assembly path" sd.Save() Finally If Not sd Is Nothing Then sd.Close() End If End Try
ServerDocument sd = null; try { sd = new ServerDocument(@"full document path"); sd.AppManifest.Dependency.AssemblyPath = @"full assembly path"; sd.Save(); } finally { if (sd != null) { sd.Close(); } }
プロジェクトをビルドして実行します。コンソール アプリケーションによって、埋め込まれているアプリケーション マニフェストのアセンブリ パスが更新され、その後、コンソール アプリケーションが閉じます。
コンソール アプリケーション プロジェクトを閉じます。
ソリューションの配置
パスが正しければ、ドキュメントとアセンブリをネットワーク コンピュータの同じフォルダに配置できます。
ソリューションを配置するには
ネットワーク コンピュータ上に "DeploymentFolder" という名前のフォルダを作成し、そのフォルダを自分専用にします。たとえば、ネットワーク コンピュータの名前が "DeploymentServer" の場合、新しいネットワーク共有は \\DeploymentServer\DeploymentFolder になります。ネットワーク共有が、前の手順で埋め込まれているアプリケーション マニフェストを編集したときに full assembly path プレースホルダに指定した名前と同じ名前であることを確認してください。
ビルド出力フォルダ (通常は project folder\bin\debug または project folder\bin\release) から \\DeploymentServer\DeploymentFolder ネットワーク共有にドキュメントとアセンブリをコピーします。
\\DeploymentServer\DeploymentFolder ネットワーク共有のドキュメントを開きます。カスタマイズ アセンブリが見つからないか、または読み込めないことを示すエラー メッセージが表示されます。これは、ネットワーク フォルダのドキュメントとアセンブリに完全な信頼が付与されていないからです。
[OK] をクリックし、ドキュメントを閉じます。
セキュリティ ポリシーの設定
ソリューションを実行するには、.NET Framework 2.0 セキュリティ ポリシーでアセンブリとドキュメントに完全な信頼を付与する必要があります。このチュートリアルでは、コード アクセス セキュリティ ポリシー ツール (Caspol.exe) を使用して、完全な信頼をアセンブリに付与します。Caspol.exe の使用方法の詳細については、「コード アクセス セキュリティ ポリシー ツール (Caspol.exe)」および「コード アクセス セキュリティ ポリシー ツール (Caspol.exe) によるセキュリティ ポリシーの構成」を参照してください。
セキュリティに関するメモ : |
---|
ここでは、チュートリアルを実行するために、URL を証拠としてセキュリティ ポリシーを設定する基本的な手順について説明します。場所の安全性が不明の場合は、これらの手順を使用して実際のソリューションでアセンブリに信頼を付与しないでください。また、実際のソリューションのセキュリティは、アセンブリの URL よりも確実な証拠に基づいて設定してください。詳細については、「Office ソリューションの実行に必要なセキュリティ条件 (2003 システム)」を参照してください。 |
アセンブリとドキュメントに完全な信頼を付与するには
コマンド プロンプトで次のコマンドを入力して、アセンブリに完全な信頼を付与する新しいコード グループを作成します。
%windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag LocalIntranet_Zone -url "full assembly path" FullTrust -n "Test_Deployment_Assembly"
full assembly path は、ネットワーク フォルダ内のアセンブリの完全パス (たとえば \\DeploymentServer\DeploymentFolder\WordDeployment.dll) に置き換えます。
-n パラメータは、新しいコード グループの名前を指定します。このパラメータの指定は必須ではありませんが、ラベルを指定すると、このチュートリアルの終了後に新しいコード グループを特定し、削除するのが簡単になります。
操作の実行を確認するプロンプトが表示されたら、「yes」と入力し、Enter キーを押します。
次のコマンドを入力して、ドキュメントに完全な信頼を付与する新しいコード グループを作成し、Enter キーを押します。自分がエンド ユーザーとしてネットワーク フォルダからドキュメントを開くことになるので、ドキュメントに完全な信頼を付与する必要があります。ドキュメントがエンド ユーザーのコンピュータ上にある場合、完全な信頼は必要ありません。
%windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag LocalIntranet_Zone -url "full document path" FullTrust -n "Test_Deployment_Document"
full document path は、ネットワーク フォルダ内のドキュメントの完全パス (たとえば \\DeploymentServer\DeploymentFolder\WordDeployment.doc) に置き換えます。
-n パラメータは、新しいコード グループの名前を指定します。このパラメータの指定は必須ではありませんが、ラベルを指定すると、このチュートリアルの終了後に新しいコード グループを特定し、削除するのが簡単になります。
操作の実行を確認するプロンプトが表示されたら、「yes」と入力し、Enter キーを押します。
開発用コンピュータで \\DeploymentServer\DeploymentFolder ネットワーク フォルダのドキュメントを開き、メッセージが表示されることを確認します。
ドキュメントを開発用コンピュータのフォルダに保存し、ドキュメントを閉じます。
開発用コンピュータでドキュメントを開き、メッセージが表示されることを確認します。
これは、埋め込まれているアプリケーション マニフェストに、ネットワーク コンピュータ上のアセンブリの完全パスが含まれているために機能します。埋め込まれているアプリケーション マニフェストでアセンブリのパスを編集しないと、ネットワーク フォルダからドキュメントを開いた場合にのみソリューションが実行されます。
次の手順
また、ドキュメントとアセンブリをローカル フォルダに配置したり、アセンブリのみをネットワーク フォルダに配置することもできます。詳細については、次のチュートリアルを参照してください。
参照
処理手順
チュートリアル : ローカル フォルダへのドキュメントとアセンブリの配置 (2003 システム)
チュートリアル : 異なるローカル フォルダへのドキュメントとアセンブリの配置 (2003 システム)
チュートリアル : ローカル フォルダへのドキュメントの配置とネットワーク フォルダへのアセンブリの配置 (2003 システム)
チュートリアル : 配置マニフェストを使用したドキュメント レベルのカスタマイズの配置 (2003 システム)
チュートリアル : Windows インストーラ ファイルを使用したドキュメント レベルのカスタマイズの配置 (2003 システム)