チュートリアル : ローカル フォルダへのドキュメントの配置とネットワーク フォルダへのアセンブリの配置 (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(); } }
プロジェクトをビルドして実行します。コンソール アプリケーションによって、埋め込まれているアプリケーション マニフェストのアセンブリ パスが更新され、その後、コンソール アプリケーションが閉じます。
コンソール アプリケーション プロジェクトを閉じます。
ソリューションの配置
パスが正しければ、ドキュメントを開発用コンピュータ上のフォルダに配置し、アセンブリをネットワーク コンピュータ上のフォルダに配置できます。
ソリューションを配置するには
"TestDeployDocument" という名前のフォルダを Windows システム ドライブ (%SystemDrive%) のルートに作成します。たとえば、システム ドライブが C の場合、新しいフォルダは C:\TestDeployDocument になります。
ネットワーク コンピュータ上に "DeploymentFolder" という名前のフォルダを作成し、そのフォルダを自分専用にします。たとえば、ネットワーク コンピュータの名前が "DeploymentServer" の場合、新しいネットワーク共有は \\DeploymentServer\DeploymentFolder になります。ネットワーク共有が、前の手順で埋め込まれているアプリケーション マニフェストを編集したときに full assembly path プレースホルダに指定した名前と同じ名前であることを確認してください。
ドキュメントをビルド出力フォルダ (通常は project folder\bin\debug または project folder\bin\release) から開発用コンピュータ上の %SystemDrive%\TestDeployDocument フォルダにコピーします。
アセンブリをビルド出力フォルダから \\DeploymentServer\DeploymentFolder ネットワーク共有にコピーします。
開発用コンピュータ上の %SystemDrive%\TestDeployDocument フォルダにあるドキュメントを開きます。現在の .NET セキュリティ ポリシーではカスタマイズの実行は許可されないというエラー メッセージが表示されます。これは、ネットワーク フォルダ内のアセンブリに完全な信頼が付与されていないからです。
[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 キーを押します。
開発用コンピュータ上の %SystemDrive%\TestDeployDocument フォルダにあるドキュメントを開いて、メッセージが表示されることを確認します。
次の手順
ドキュメントとアセンブリはローカル フォルダに配置することも、両方とも同じネットワーク フォルダに配置することもできます。詳細については、次のチュートリアルを参照してください。
参照
処理手順
チュートリアル : ローカル フォルダへのドキュメントとアセンブリの配置 (2003 システム)
チュートリアル : 異なるローカル フォルダへのドキュメントとアセンブリの配置 (2003 システム)
チュートリアル : ネットワーク フォルダへのドキュメントとアセンブリの配置 (2003 システム)
チュートリアル : 配置マニフェストを使用したドキュメント レベルのカスタマイズの配置 (2003 システム)
チュートリアル : Windows インストーラ ファイルを使用したドキュメント レベルのカスタマイズの配置 (2003 システム)