如何:添加或移除包含列表项

在安装的解决方案没有可信证书的情况下,Office 解决方案的安装程序可以添加包含列表项。 安装程序显示一条提示,用户可以响应并指出应当信任该解决方案。 如果要向用户的包含列表中添加您的解决方案,但不想提示用户,则可以用编程方式添加包含列表项。 有关包含列表的信息,请参见使用包含列表信任 Office 解决方案

**适用于:**本主题中的信息适用于 Microsoft Office 2010 和 2007 Microsoft Office system 的文档级项目和应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能

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

链接到视频 有关本主题的视频版本,请参见 Video How to: Add or Remove Inclusion List Entries(视频帮助主题:添加或移除包含列表项)。

向包含列表中添加项

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

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

  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 解决方案的安全