如何:添加或移除包含列表项 (2007 System)

更新:2007 年 11 月

适用对象

本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。

项目类型

  • 文档级项目

  • 应用程序级项目

Microsoft Office 版本

  • 2007 Microsoft Office system

有关更多信息,请参见按应用程序和项目类型提供的功能

所安装的解决方案没有受信任的证书时,Visual Studio Tools for Office 项目的安装程序可以向包含列表添加解决方案。但安装程序将显示一个提示,用户可以做出响应并指出应信任该解决方案。如果要向用户的包含列表中添加您的解决方案,但不想提示用户,则可以用编程方式添加包含列表项。

有关包含列表的信息,请参见通过使用包含列表信任 Office 解决方案 (2007 System)

下面的过程使用控制台应用程序来修改包含列表。应避免修改代码来接受用户输入。

链接到视频有关视频演示,请参见 Video How to: Add or Remove Inclusion List Entries (2007 System)(视频帮助:添加或移除包含列表项 (2007 system))。

向包含列表中添加项

使用 Add 方法将 AddInSecurityEntry 项添加到 UserInclusionList

向包含列表中添加解决方案

  1. 在 Visual Studio 中创建一个 Visual Basic 或 Visual C# 控制台应用程序。

  2. 添加对 Microsoft.VisualStudio.Tools.Office.Runtime.v9.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 方法来移除项。

从包含列表中移除解决方案

  1. 在 Visual Studio 中创建一个 Visual Basic 或 Visual C# 控制台应用程序。

  2. 添加对 Microsoft.VisualStudio.Tools.Office.Runtime.v9.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 解决方案 (2007 System)

Office 解决方案中的安全性 (2007 System)