次の方法で共有


方法 : ServerDocument クラスの両方のバージョンを使用するコードを記述する

更新 : 2007 年 11 月

対象

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

プロジェクトの種類

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

Microsoft Office のバージョン

  • 2007 Microsoft Office system

  • Microsoft Office 2003

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

ServerDocument クラスを使用する 1 つのコード ファイルを作成し、それによって Microsoft Office 2003 と 2007 Microsoft Office system の両方のカスタマイズを管理することができます。これにより、Microsoft Office の複数のバージョンのカスタマイズを管理する必要がある場合に、再利用できるコードを含むアセンブリを作成できます。

ServerDocument クラスの 2 つのバージョンの相違点については「ServerDocument クラスによるサーバー上のドキュメントの管理」を参照してください。

ServerDocument クラスの両方のバージョンを使用するコードを記述するには

  1. 次のアセンブリへの参照を追加します。

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll

    • Microsoft.VisualStudio.Tools.Applications.Runtime.dll

  2. コード ファイルに次の using ステートメント (Visual C# の場合) または Imports ステートメント (Visual Basic の場合) を追加します。これらのステートメントは、ServerDocument クラスの各バージョンの名前空間に対するエイリアスを定義します。

    Imports v3Runtime = Microsoft.VisualStudio.Tools.Applications
    Imports SERuntime = Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using v3Runtime = Microsoft.VisualStudio.Tools.Applications;
    using SERuntime = Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  3. GetCustomizationVersion メソッドを使用して、Visual Studio Tools for Office ランタイムのどちらのバージョンがカスタマイズの作成に使用されたかを確認します。次に、そのランタイム バージョンの ServerDocument クラスを使用して、カスタマイズを操作します。

    次のコード例は、特定の文書に関連付けられているカスタマイズを調べます。その文書が Microsoft Visual Studio Tools for the Microsoft Office system (version 3.0 Runtime) (つまり Word 2007 のプロジェクト) によってカスタマイズされている場合、このコードは配置マニフェストの URL を表示します。文書が Visual Studio 2005 Tools for Office Second Edition Runtime (つまり Word 2003 のプロジェクト) によってカスタマイズされている場合は、埋め込まれたアプリケーション マニフェストの内容を表示します。

    Private Sub DisplayCustomizationInformation(ByVal documentPath As String)
        Dim runtimeVersion As Integer = 0
        Dim serverDocumentv3 As v3Runtime.ServerDocument = Nothing
        Dim serverDocumentSE As SERuntime.ServerDocument = Nothing
    
        Try
            runtimeVersion = v3Runtime.ServerDocument.GetCustomizationVersion(documentPath)
    
            ' Access a member that is specific to each version of the runtime.
            If runtimeVersion = 3 Then
                serverDocumentv3 = New v3Runtime.ServerDocument(documentPath)
                MessageBox.Show("The URL of the deployment manifest is: " & vbLf & _
                    serverDocumentv3.DeploymentManifestUrl.ToString())
            ElseIf runtimeVersion = 2 Then
                serverDocumentSE = New SERuntime.ServerDocument(documentPath)
                MessageBox.Show("The embedded application manifest has the following contents: " & vbLf _
                    & serverDocumentSE.AppManifest.ToXml())
            End If
    
        Catch ex As System.IO.FileNotFoundException
            System.Windows.Forms.MessageBox.Show("The specified document does not exist.")
        Finally
            If Not (serverDocumentv3 Is Nothing) Then
                serverDocumentv3.Close()
            End If
            If Not (serverDocumentSE Is Nothing) Then
                serverDocumentSE.Close()
            End If
        End Try
    End Sub
    
    private void DisplayCustomizationInformation(string documentPath)
    {
        int runtimeVersion = 0;
        v3Runtime.ServerDocument serverDocumentv3 = null;
        SERuntime.ServerDocument serverDocumentSE = null;
    
        try
        {
            runtimeVersion = v3Runtime.ServerDocument.GetCustomizationVersion(documentPath);
    
            // Access a member that is specific to each version of the runtime.
            if (runtimeVersion == 3)
            {
                serverDocumentv3 = new v3Runtime.ServerDocument(documentPath);
                MessageBox.Show("The URL of the deployment manifest is: \n" +
                    serverDocumentv3.DeploymentManifestUrl.ToString());
            }
            else if (runtimeVersion == 2)
            {
                serverDocumentSE = new SERuntime.ServerDocument(documentPath);
                MessageBox.Show("The embedded application manifest has the following contents: \n" +
                    serverDocumentSE.AppManifest.ToXml());
            }
        }
        catch (System.IO.FileNotFoundException)
        {
            System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
        }
        finally
        {
            if (serverDocumentv3 != null)
                serverDocumentv3.Close();
            if (serverDocumentSE != null)
                serverDocumentSE.Close();
        }
    }
    

参照

概念

ServerDocument クラスによるサーバー上のドキュメントの管理

参照

Microsoft.VisualStudio.Tools.Applications.ServerDocument

Microsoft.VisualStudio.Tools.Applications.Runtime.ServerDocument