チュートリアル : 異なるローカル フォルダへのドキュメントとアセンブリの配置 (2003 システム)

更新 : 2007 年 11 月

対象

このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。

プロジェクトの種類

  • ドキュメント レベルのプロジェクト

Microsoft Office のバージョン

  • Microsoft Office 2003

詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

このチュートリアルでは、ドキュメント レベルのカスタマイズを配置して、エンド ユーザーのコンピュータの異なるフォルダにドキュメントとアセンブリを格納する方法について説明します。この種類の配置は、ローカル/ローカル配置モデルと呼ばれます。

ソリューションの配置に関するオプションの詳細については、「配置モデル (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

    ms404838.alert_note(ja-jp,VS.90).gifメモ :

    このチュートリアルでは、Word ソリューションを配置することを前提としています。Excel ソリューションを使用してチュートリアルを実行する場合は、すべてのコード例で、Word プロジェクトの名前を Excel プロジェクトの名前に置き換えてください。

  • 開発用コンピュータにおける管理者特権 (セキュリティ ポリシーを設定できるようにするため)。

配置するソリューションの作成

最初に、配置する基本の Visual Studio Tools for Office ソリューションを作成します。配置するソリューションを既に作成してある場合は、このセクションをスキップして、「ソリューションの配置」に進んでください。

配置するソリューションを作成するには

  1. Office 2003 のプロジェクト テンプレートを使用して、WordDeployment という名前の Word 文書プロジェクトを作成します。

    ウィザードで、[新規ドキュメントの作成] をクリックします。詳細については、「方法 : Visual Studio Tools for Office プロジェクトを作成する」を参照してください。

  2. ソリューション エクスプローラで、ThisDocument コード ファイルを右クリックし、[コードの表示] をクリックします。

  3. ThisDocument_Startup イベント ハンドラに次のコードを追加します。このコードを追加すると、ドキュメントが開いたときにメッセージが表示され、ソリューションが正しく配置されたかどうかを簡単に確認できます。

    MessageBox.Show("The deployment is successful")
    
    MessageBox.Show("The deployment is successful");
    

    Startup イベントの詳細については、「Visual Studio Tools for Office プロジェクトのイベント」を参照してください。

  4. F5 キーを押して、プロジェクトをビルドおよび実行します。メッセージが表示されることを確認します。

ソリューションの配置

次の手順では、開発用コンピュータ上の異なるフォルダにドキュメントとアセンブリを配置します。

ソリューションを配置するには

  1. TestDeployDocument および TestDeployAssembly という名前のフォルダを Windows システム ドライブ (%SystemDrive%) のルートに作成します。たとえば、システム ドライブが C の場合、新しいフォルダは C:\TestDeployDocument および C:\TestDeployAssembly になります。

  2. ビルド出力フォルダ (通常は project folder\bin\debug または project folder\bin\release) から %SystemDrive%\TestDeployDocument フォルダにドキュメントをコピーし、ビルド出力フォルダから %SystemDrive%\TestDeployAssembly フォルダにアセンブリをコピーします。

  3. %SystemDrive%\TestDeployDocument フォルダのドキュメントを開きます。カスタマイズ アセンブリが見つからないか、読み込めないというエラー メッセージが表示されます。

    ソリューションのビルド時には、ドキュメントによって、アセンブリがドキュメントと同じフォルダにあるものと想定されます。アセンブリの場所は、ドキュメントに埋め込まれているアプリケーション マニフェストに保存されます。ドキュメントとアセンブリを異なるフォルダに配置する場合、埋め込まれているアプリケーション マニフェストを編集して新しいアセンブリ パスを指定する必要があります。次のセクションでは、この手順について説明します。

  4. Word を終了します。

  5. Visual Studio でソリューションを閉じます。

    ドキュメントが、Word のインスタンスやプロジェクト デザイナで開かれていないことを確認します。ドキュメントが開かれていると、次の手順で行われる ServerDocument によるドキュメントへのアクセスの試みが失敗します。

埋め込まれたアプリケーション マニフェストの編集

ServerDocument クラスを使用してドキュメントに埋め込まれたアプリケーション マニフェストを編集し、カスタマイズ アセンブリの新しい場所を指すようにします。ServerDocument を使用して埋め込まれたアプリケーション マニフェストを編集するためのコードは、配置するドキュメントに関連付けられている Visual Studio Tools for Office プロジェクト アセンブリの外に指定する必要があります。

埋め込まれたアプリケーション マニフェストを編集するには

  1. 新しいコンソール アプリケーション プロジェクトを作成します。詳細については、「方法 : ソリューションおよびプロジェクトを作成する」を参照してください。

  2. 新しいプロジェクトに Microsoft.VisualStudio.Tools.Applications.Runtime.dll アセンブリに対する参照を追加します。

  3. 次の using ステートメント (C#) または Imports ステートメント (Visual Basic) を、Program.cs コード ファイルか Module1.vb コード ファイルの最初に追加します。

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  4. 次のコードを Main メソッドに追加して、埋め込まれたアプリケーション マニフェストを更新します。full document path は、開発用コンピュータの配置場所におけるドキュメントの完全パス (たとえば C:\TestDeployDocument\WordDeployment.doc) に置き換えます。full assembly path は、配置先のフォルダにおけるアセンブリの完全パス (たとえば C:\TestDeployAssembly\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();
        }
    }
    
  5. F5 キーを押して、プロジェクトをビルドおよび実行します。コンソール アプリケーションによって、埋め込まれたアプリケーション マニフェストのアセンブリ パスが更新され、コンソール アプリケーションが閉じます。

  6. コンソール アプリケーション プロジェクトを閉じます。

  7. %SystemDrive%\TestDeployDocument フォルダのドキュメントを開きます。現在の .NET セキュリティ ポリシーではカスタマイズの実行は許可されないというエラー メッセージが表示されます。これは、アセンブリに完全な信頼をまだ付与していないからです。

  8. Word を終了します。

    Word のすべてのインスタンスを閉じる必要があります。そうでないと、セキュリティ ポリシーの変更が反映されません。

セキュリティ ポリシーの設定

ソリューションを実行するには、.NET Framework 2.0 セキュリティ ポリシーでアセンブリに完全な信頼を付与する必要があります。このチュートリアルでは、アセンブリに完全な信頼を付与するために、コード アクセス セキュリティ ポリシー ツール (Caspol.exe) を使用します。Caspol.exe の使用方法の詳細については、「コード アクセス セキュリティ ポリシー ツール (Caspol.exe)」および「コード アクセス セキュリティ ポリシー ツール (Caspol.exe) によるセキュリティ ポリシーの構成」を参照してください。

ms404838.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

このチュートリアルでは、URL の証拠に基づいてセキュリティ ポリシーを設定する基本的な手順を実行します。実際のソリューションでアセンブリの場所の安全性が不明な場合は、これらの手順を実行しないでください。実行すると、アセンブリに信頼が付与されてしまいます。また、実際のソリューションでは、アセンブリの URL 以上の証拠に基づいて安全性を確認してください。詳細については、「Office ソリューションの実行に必要なセキュリティ条件 (2003 システム)」を参照してください。

アセンブリに完全な信頼を付与するには

  1. コマンド プロンプトで次のコマンドを入力して、アセンブリに完全な信頼を付与する新しいコード グループを作成します。

    %windir%\Microsoft.NET\Framework\v2.0.50727\caspol -u -ag All_Code -url "full assembly path" FullTrust -n "Test_Deployment"
    

    full assembly path は、開発用コンピュータ上のアセンブリの完全パス (たとえば C:\TestDeployAssembly\WordDeployment.dll) に置き換えます。

    -n パラメータは、新規コード グループの名前を示します。このパラメータは省略可能ですが、ラベルを指定しておくと、このチュートリアルを完了した後で新規コード グループを簡単に識別および削除できるようになります。

  2. 操作を実行するかどうかを確認するメッセージが表示されたら、「yes」と入力し、Enter キーを押します。

  3. %SystemDrive%\TestDeployDocument フォルダのドキュメントを開いて、メッセージが表示されることを確認します。

次の手順

ドキュメントとアセンブリは同じローカル フォルダに配置することも、ドキュメントとアセンブリをネットワーク フォルダに配置することもできます。詳細については、次のチュートリアルを参照してください。

参照

処理手順

チュートリアル : ローカル フォルダへのドキュメントとアセンブリの配置 (2003 システム)

チュートリアル : ローカル フォルダへのドキュメントの配置とネットワーク フォルダへのアセンブリの配置 (2003 システム)

チュートリアル : ネットワーク フォルダへのドキュメントとアセンブリの配置 (2003 システム)

チュートリアル : 配置マニフェストを使用したドキュメント レベルのカスタマイズの配置 (2003 システム)

チュートリアル : Windows インストーラ ファイルを使用したドキュメント レベルのカスタマイズの配置 (2003 システム)

概念

Office ソリューションの配置 (2003 システム)

ドキュメント レベルのカスタマイズの配置 (2003 システム)

配置モデル (2003 システム)