症状

当您尝试通过在 Microsoft Visual Studio 2008 中使用Microsoft.VisualStudio.Shell.Interop.dll程序集生成类型库信息时,您可能会遇到下列症状之一。

症状 1

当使用 Regasm.exe 实用程序生成并注册到类型库时,您可能会收到以下错误消息︰

RegAsm︰ 错误 RA000︰ 类型库导出程序在处理"Microsoft.VisualStudio.Shell.Interop.SVsSolutionObject,Microsoft.VisualStudio.Shell.Interop"时遇到错误。错误︰ 键入 SVsSolutionObject,然后键入 SVsSolution 都有同一个 UUID。

症状

当 TlbExp.exe 实用程序用于生成类型库时,您可能会收到以下错误消息︰

TlbExp︰ 错误 TX0000︰ 类型库导出程序在处理 'Microsoft.VisualStudio.Shell.Interop.SVsSolutionObject,Microsoft.VisualStudio.Shell.Interop' 时遇到一个错误。错误︰ 键入 SVsSolutionObject,然后键入 SVsSolution 都有同一个 UUID。

现象 3

Visual Studio 2008 包实现公开的EnvDTE.DTE.Properties属性的属性集合。如果集合是使用Microsoft.VisualStudio.Shell.Interop.dll程序集类型对象的成员,公共语言运行时 (CLR) 将不必要的内存中类型库构造为程序集。例如,下面的 Visual Studio 宏引用EnvDTE.DTE.Properties属性将失败,并且然后您将收到一条错误消息。

Dim proj As Project = DTE.Solution.Projects.Item(1)   Dim props As Properties = proj.ConfigurationManager.ActiveConfiguration.Properties

原因

因为从 Visual Studio 2008 中的Microsoft.VisualStudio.Shell.Interop.dll程序集ImportedFromTypelib属性都会被删除,将出现此问题。因为此程序集不具有相关联的类型库,则移除该ImportedFromTypelib特性。因此, ImportedFromTypelib属性会导致失败时尝试查找相关联的类型库的 CLR。在 Visual Studio 2008 中, ImportedFromTypelib属性已被删除,因为 CLR 不能Microsoft.VisualStudio.Shell.Interop.dll程序集构造所需内存中的类型库。此故障被由于重复的类型的 Guid。

解决方案

修补程序信息

可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。仅对出现这一特定问题的系统应用此修补程序。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。若要从 MSDN 代码库中下载此修补程序,请访问下面的 Microsoft Web 站点:

http://code.msdn.microsoft.com/KB946308 注意:MSDN 代码库显示获取此修复程序的语言。如果看不到列出的语言,这是因为代码库的资源页不可用这种语言。注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站︰

http://support.microsoft.com/contactus/?ws=support

系统必备组件

您必须具有要应用此修补程序的安装的 Visual Studio 2008。

重启要求

应用此修补程序后,不需要重新启动计算机。

修补程序替换信息

此修补程序不替代以前发布的修补程序。

文件信息

此修复程序的英文版具有的文件属性 (或更新的文件属性)在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用控制面板中的日期和时间项中的时区选项卡。

文件名称

文件版本

文件大小

日期

时间

平台

Microsoft.VisualStudio.Shell.Interop.dll

7.10.6071.0

259152

07-Jan-2008

15:37

x86

状态

Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

详细信息

此修补程序通过设置ComVisible属性的值为 false,以便类型库生成器将忽略重复的 Guid 标记所有重复的 Guid。有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

用于描述 Microsoft 软件更新的标准术语的824684说明

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。