Share via


HOW TO:新增或移除內含清單項目

正在安裝的方案沒有信任的憑證時,Office 方案的安裝程式可以加入內含清單項目。 安裝程式會顯示提示,而使用者可以回應並指出應該信任該方案。 如果您要在不提示使用者的情況下將方案加入至使用者內含清單,可以用程式設計的方式加入內含清單項目。 如需內含清單的詳細資訊,請參閱使用內含清單信任 Office 方案

**適用於:**本主題中的資訊適用於 Microsoft Office 2010 和 2007 Microsoft Office system 的文件層級專案和應用程式層級專案。 如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能

下列程序使用主控台應用程式修改內含清單。 您應該避免修改程式碼以接受使用者輸入。

視訊的連結 如需此主題的影片版,請參閱影片 HOW TO:加入或移除內含清單項目 (英文)。

將項目加入至內含清單

將 AddInSecurityEntry 項目加入至 UserInclusionList,方法是使用 Add(AddInSecurityEntry) 方法。

若要將方案加入至內含清單

  1. 建立目標為 .NET Framework 3.5 的 Visual Basic 或 Visual C# 主控台應用程式或類別庫。

    注意事項注意事項

    如果您使用 Windows Installer 部署 Office 方案,可以將 Office 方案安裝至 Program Files 目錄,以免必須建立內含清單項目。

  2. 將參考加入至 Microsoft.VisualStudio.Tools.Office.Runtime.v10.0。

  3. 開啟 Module1.vb 或 Program.cs 檔進行編輯,然後將下列 Imports 或 using 陳述式加入至檔案的頂端。

    Imports Microsoft.VisualStudio.Tools.Office.Runtime.Security
    
    using Microsoft.VisualStudio.Tools.Office.Runtime.Security;
    
  4. 開啟您要加入至內含清單之 Office 方案的部署資訊清單,並且找出會在 StrongNameSignature 節點下顯示的 RSAKeyValue 項目。

  5. RSAKeyValue 項目,包含所有子項目及 RSAKeyValue 標記複製至 [剪貼簿]。

  6. 將下列程式碼加入至 Main 方法,並且用從部署資訊清單複製的文字取代 PublicKey,然後用部署資訊清單的位置取代範例 URI

    Dim publicKey As String = "<RSAKeyValue><Modulus>mUl8MhOil1fKLKYpHItsyCGNXxGJW74L8d4zOVwSvLDP1qoXF0lLqf/Ql8yO+31zuFbx8Aer3eQz9tcb/pz0NJREdbeOvxYa+nHTnR3j7rRUkmE8AKzvcG8BmTlgbprXaY0QTln8syHTC7yY5AA+xibwatFMpEpEBRqF5MmsGkE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>"
    Dim solutionLocation As New _
        Uri("http://DeploymentServer/MySolution/MySolution.vsto")
    Dim entry As AddInSecurityEntry
    
    Try
        entry = New AddInSecurityEntry(solutionLocation, publicKey)
        UserInclusionList.Add(entry)
    
    Catch e As ArgumentNullException
        Console.WriteLine(("Exception: " + e.Message))
    End Try
    
    string publicKey = "<RSAKeyValue><Modulus></Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
    Uri solutionLocation = new Uri(@"http://DeploymentServer/MySolution/MySolution.vsto");
    
    AddInSecurityEntry entry;
    
    try
    {
        entry = new AddInSecurityEntry(solutionLocation, publicKey);
        UserInclusionList.Add(entry);
    }
    
    catch (ArgumentNullException e)
    {
        Console.WriteLine("Exception: " + e.Message);
    }
    
  7. 建置應用程式。

  8. 在執行 Visual Studio Tools for Office 方案的電腦上執行應用程式。 由 solutionLocation 所代表且具有部署資訊清單的方案會加入至內含清單。

從內含清單移除項目

使用 UserInclusionList 類別的 Remove(Uri) 方法移除項目。

若要從內含清單移除方案

  1. 建立目標為 .NET Framework 3.5 的 Visual Basic 或 Visual C# 主控台應用程式或類別庫。

  2. 將參考加入至 Microsoft.VisualStudio.Tools.Office.Runtime.v10.0。

  3. 開啟程式碼檔進行編輯,然後將下列 Imports 或 using 陳述式加入至檔案的頂端。

    Imports Microsoft.VisualStudio.Tools.Office.Runtime.Security
    
    using Microsoft.VisualStudio.Tools.Office.Runtime.Security;
    
  4. 將下列程式碼加入至 Main 方法,並且用您部署資訊清單的位置取代範例 URI。

    Dim solutionLocation As New _
        Uri("http://DeploymentServer/MySolution/MySolution.vsto")
    Try
        UserInclusionList.Remove(solutionLocation)
    
    Catch e As ArgumentNullException
        Console.WriteLine(("Exception: " + e.Message))
    End Try
    
    Uri solutionLocation = new Uri("http://DeploymentServer/MySolution/MySolution.vsto");
    
    try
    {
        UserInclusionList.Remove(solutionLocation);
    }
    
    catch (ArgumentNullException e)
    {
       Console.WriteLine("Exception: " + e.Message);
    }
    
  5. 建置應用程式。

  6. 在執行 Visual Studio Tools for Office 方案的電腦上執行應用程式。 由 solutionLocation 所代表且具有部署資訊清單的方案會從內含清單移除。

請參閱

概念

使用內含清單信任 Office 方案

其他資源

保護 Office 方案