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 | documentPath 所指定的文件有 Visual Studio Tools for Office Runtime 不支援的副檔名。 |
備註
AddCustomization 方法會藉由將 _AssemblyName 和 _AssemblyLocation 自訂文件屬性加入至文件,將指定的自訂與文件產生關聯。 這些屬性會識別含有自訂的文件,且會指定部署資訊清單的位置。 成功呼叫這個方法之後,下次使用者開啟指定的文件時,執行階段就會嘗試安裝 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)。
或
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 安全性
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。