从 .NET Framework 4 版开始,公共语言运行时支持将 COM 类型的类型信息直接嵌入到托管程序集中,而不是要求托管程序集从互操作程序集中获取 COM 类型的类型信息。由于嵌入的类型信息只包含托管程序集实际所使用的类型和成员,因此两个托管程序集可能会具有相同 COM 类型的截然不同的视图。每个托管程序集使用不同的 Type 对象来表示各自的 COM 类型视图。公共语言运行时支持这些不同视图之间的类型等效性,这些类型包括接口、结构、枚举和委托。
类型等效性意味着,在两个托管程序集之间传递的 COM 对象在接收程序集中可以转换为适当的托管类型。
![]() |
---|
类型等效性和嵌入的互操作类型可简化使用 COM 组件的应用程序和外接程序的部署过程,这是因为不需要使用应用程序来部署互操作程序集。共享 COM 组件的开发人员若想使其组件可供早期版本的 .NET Framework 使用,则他们仍然必须创建主互操作程序集 (PIA)。 |
实际引用com组件时,会出现了无法嵌入互操作类型“……”,请改用适用的接口的错误提示
解决办法:选中项目中引入的dll,鼠标右键,选择属性,把“嵌入互操作类型”设置为False。
直销软件数据库备份就用到Interop.SQLDMO.dll第三方组件
以上经验供大家在学习参考。
如果需要更多交流,请博客留言,或是登录:http://www.gqian.com