如何:添加或移除包含列表项
在安装的解决方案没有可信证书的情况下,Office 解决方案的安装程序可以添加包含列表项。 安装程序显示一条提示,用户可以响应并指出应当信任该解决方案。 如果要向用户的包含列表中添加您的解决方案,但不想提示用户,则可以用编程方式添加包含列表项。 有关包含列表的信息,请参见使用包含列表信任 Office 解决方案。
**适用于:**本主题中的信息适用于 Microsoft Office 2010 和 2007 Microsoft Office system 的文档级项目和应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能。
下面的过程使用控制台应用程序来修改包含列表。 应避免修改代码来接受用户输入。
有关本主题的视频版本,请参见 Video How to: Add or Remove Inclusion List Entries(视频帮助主题:添加或移除包含列表项)。
向包含列表中添加项
使用 Add(AddInSecurityEntry) 方法将 AddInSecurityEntry 项添加到 UserInclusionList。
向包含列表中添加解决方案
创建面向 .NET Framework 3.5 的 Visual Basic 或 Visual C# 控制台应用程序或类库。
提示
如果使用 Windows Installer 来部署 Office 解决方案,则可以将 Office 解决方案安装到 Program Files 目录中,这样就不必创建包含列表项。
添加对 Microsoft.VisualStudio.Tools.Office.Runtime.v10.0 的引用。
打开 Module1.vb 或 Program.cs 文件进行编辑,并在文件的顶部添加以下 Imports 或 using 语句。
Imports Microsoft.VisualStudio.Tools.Office.Runtime.Security
using Microsoft.VisualStudio.Tools.Office.Runtime.Security;
打开要添加到包含列表的 Office 解决方案的部署清单,并找到出现在 StrongNameSignature 节点下的 RSAKeyValue 元素。
将 RSAKeyValue 元素(包括所有子元素和 RSAKeyValue 标记)复制到剪贴板。
将以下代码添加到 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); }
生成应用程序。
在运行 Visual Studio Tools for Office 解决方案的计算机上运行应用程序。 包含由 solutionLocation 表示的部署清单的解决方案即被添加到包含列表。
从包含列表中移除项
使用 UserInclusionList 类的 Remove(Uri) 方法来移除项。
从包含列表中移除解决方案
创建面向 .NET Framework 3.5 的 Visual Basic 或 Visual C# 控制台应用程序或类库。
添加对 Microsoft.VisualStudio.Tools.Office.Runtime.v10.0 的引用。
打开代码文件进行编辑,并在文件的顶部添加以下 Imports 或 using 语句。
Imports Microsoft.VisualStudio.Tools.Office.Runtime.Security
using Microsoft.VisualStudio.Tools.Office.Runtime.Security;
将以下代码添加到 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); }
生成应用程序。
在运行 Visual Studio Tools for Office 解决方案的计算机上运行应用程序。 包含由 solutionLocation 表示的部署清单的解决方案即被从包含列表中移除。