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.ApplicationsMicrosoft.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 安全性

請參閱

參考

ServerDocument 類別

AddCustomization 多載

Microsoft.VisualStudio.Tools.Applications 命名空間