ServerDocument.AddCustomization 方法 (String, Uri)
使用指定的程序集名称和部署清单,将自定义项附加到指定文档。
命名空间: Microsoft.VisualStudio.Tools.Applications
程序集: Microsoft.VisualStudio.Tools.Applications.ServerDocument(在 Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll 中)
语法
声明
Public Shared Sub AddCustomization ( _
documentPath As String, _
deploymentManifestUrl As Uri _
)
public static void AddCustomization(
string documentPath,
Uri deploymentManifestUrl
)
参数
- documentPath
类型:System.String
要附加自定义项的文档的完整路径。
- deploymentManifestUrl
类型:System.Uri
解决方案部署清单的 URL。
异常
异常 | 条件 |
---|---|
ArgumentNullException | documentPath 或 deploymentManifestUrl 为 nullnull 引用(在 Visual Basic 中为 Nothing) 或为空。 |
ArgumentException | deploymentManifestUrl 未指定绝对 URL。 |
FileNotFoundException | documentPath 或 deploymentManifestUrl 引用的文件不存在。 |
DocumentAlreadyCustomizedException | documentPath 指定的文档已具有自定义项。 |
InvalidManifestException | deploymentManifestUrl 指定的部署清单不是有效的部署清单。 |
DocumentNotCustomizedException | documentPath 指定的文档损坏,或其权限受限制。 |
UnknownCustomizationFileException | Visual Studio Tools for Office Runtime 不支持 documentPath 指定的文档的文件扩展名。 |
备注
通过将 _AssemblyName 和 _AssemblyLocation 自定义文档属性添加到文档中,AddCustomization 方法可将指定的自定义项与文档相关联。这些属性确认文档具有自定义项,并指定部署清单的位置。在成功调用此方法之后,当用户下次打开指定文档时,运行时将尝试安装 Office 解决方案。有关自定义文档属性的更多信息,请参见自定义文档属性概述。
如果指定的文档不包含自定义项要求文档包含的控件,AddCustomization 方法仍然能够成功,但在用户打开文档时程序集加载会失败。
fileType 参数必须指定一个这样的文档:其文件扩展名被文档级自定义项支持。您不能将自定义附加到以 Word XML 文档 (*xml) 或 Word 2003 XML 文档 (*xml) 文件格式保存的文档。有关支持的文件类型的更多信息,请参见文档级自定义项的体系结构。
示例
下面的代码示例使用 AddCustomization 方法将自定义项附加到指定文档。
此示例需要:
控制台应用程序项目或某些其他非 Office 项目。
对下列程序集的引用:
Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll 和 Microsoft.VisualStudio.Tools.Applications.Runtime.dll (如果项目面向 .NET Framework 4 或 .NET Framework 4.5)。
或
Microsoft.VisualStudio.Tools.Applications.ServerDocument.v10.0.dll 和 Microsoft.VisualStudio.Tools.Applications.Runtime.v9.0.dll(如果该项目面向 .NET Framework 3.5)。
位于代码文件顶部的用于 Microsoft.VisualStudio.Tools.Applications 和 Microsoft.VisualStudio.Tools.Applications.Runtime 命名空间的Imports(对于 Visual Basic)或 using(对于 C#)语句。
Private Sub AddCustomizationUsingDocumentPath(ByVal documentPath As String, _
ByVal deployManifestPath As String)
Dim runtimeVersion As Integer = 0
Try
' Make sure that this document does not yet have any Visual Studio Tools
' for Office customizations.
runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath)
If runtimeVersion = 0 Then
Dim deploymentManifestUri As New Uri(deployManifestPath)
ServerDocument.AddCustomization(documentPath, deploymentManifestUri)
MessageBox.Show("The document was successfully customized.")
Else
System.Windows.Forms.MessageBox.Show("The document is already customized.")
End If
Catch ex As System.IO.FileNotFoundException
System.Windows.Forms.MessageBox.Show("The specified document does not exist.")
Catch ex As UnknownCustomizationFileException
System.Windows.Forms.MessageBox.Show("The specified document has a file " & _
"extension that is not supported by Visual Studio Tools for Office.")
Catch ex As DocumentNotCustomizedException
System.Windows.Forms.MessageBox.Show("The document could not be customized." & _
vbLf & ex.Message)
End Try
End Sub
private void AddCustomizationUsingDocumentPath(string documentPath, string deployManifestPath)
{
int runtimeVersion = 0;
try
{
runtimeVersion = ServerDocument.GetCustomizationVersion(documentPath);
// Make sure that this document does not yet have any Visual Studio Tools
// for Office customizations.
if (runtimeVersion == 0)
{
Uri deploymentManifestUri = new Uri(deployManifestPath);
ServerDocument.AddCustomization(documentPath, deploymentManifestUri);
MessageBox.Show("The document was successfully customized.");
}
else
{
System.Windows.Forms.MessageBox.Show("The document is already customized.");
}
}
catch (System.IO.FileNotFoundException)
{
System.Windows.Forms.MessageBox.Show("The specified document does not exist.");
}
catch (UnknownCustomizationFileException)
{
System.Windows.Forms.MessageBox.Show("The specified document has a file " +
"extension that is not supported by Visual Studio Tools for Office.");
}
catch (DocumentNotCustomizedException ex)
{
System.Windows.Forms.MessageBox.Show("The document could not be customized.\n" +
ex.Message);
}
}
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。