如何:编写使用两个版本的 ServerDocument 类的代码
更新:2007 年 11 月
适用对象 |
---|
本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。 项目类型
Microsoft Office 版本
有关更多信息,请参见按应用程序和项目类型提供的功能。 |
可以创建一个代码文件,该文件使用 ServerDocument 类来管理 Microsoft Office 2003 和 2007 Microsoft Office system 的自定义项。在需要管理多个版本的 Microsoft Office 的自定义项时,这有助于创建包含可重用代码的程序集。
有关这两个版本的 ServerDocument 类之间的差异信息,请参见使用 ServerDocument 类管理服务器上的文档。
编写使用两个版本的 ServerDocument 类的代码
添加对下列程序集的引用:
Microsoft.VisualStudio.Tools.Applications.ServerDocument.v9.0.dll
Microsoft.VisualStudio.Tools.Applications.Runtime.dll
向代码文件的顶部添加以下 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;
使用 GetCustomizationVersion 方法确定用于创建自定义项的 Visual Studio Tools for Office 运行时的版本。然后,使用该版本的运行时中的 ServerDocument 类来处理自定义项。
下面的代码示例检查与指定的文档关联的自定义项。如果该文档是使用 Microsoft Visual Studio Tools for the Microsoft Office system(3.0 版运行时)(即,使用 Word 2007 的项目)自定义的,则此示例显示部署清单的 URL。如果该文档是使用 Visual Studio 2005 Tools for Office Second Edition 运行时(即,使用 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(); } }
请参见
概念
参考
Microsoft.VisualStudio.Tools.Applications.ServerDocument
Microsoft.VisualStudio.Tools.Applications.Runtime.ServerDocument