PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
来源:互联网 发布:顺丰科技 java 编辑:程序博客网 时间:2024/05/18 09:07
当用.NET调用已有的COM组件的时候,一般需要使用tlbimp导入COM组件的TypeLibrary信息,生成对应的Interop Assembly。所谓PIA (Primary Interop Assembly),则是“官方”发布的对于某个COM组件的.NET DLL。比如微软公司发布了Office 2003的COM组件,可以用于操作COM,同时,微软也发布了Office 2003所对应的PIA,用于.NET。PIA和普通的Interop(又称为AIA, Alternative Interop Assembly)的不同之处在于:
1. PIA是官方发布并经过Sign,可以在不同程序中共享。而AIA如果被不同的公司Sign过,则一个公司Sign的AIA DLL所创建的对象和另外一个公司Sign的AIA DLL是不兼容的(不同的Key代表不同的Identity),这也是使用PIA的主要原因
2. PIA可能经过某种改动使其比一般Tlbimp生成的Interop DLL要容易使用一些,比如提供一些封装函数。修改方法通常有两种:
a. 可以从Tlbimp生成的DLL反汇编修改再生成新的DLL
b. 可以自己用C#来编写这个DLL(其实Tlbimp和Tlbexp也是C#写的)
3. 用Tlbimp生成PIA的时候需要指定/primary开关并声明对应的key,如果不使用tlbimp生成PIA,则需要将对应的DLL加上PrimaryInteropAttribute和GuidAttribute,这也正是Tlbimp所作的。
4. 用RegAsm注册PIA的时候,RegAsm会在COM组件的TypeLibrary注册项中加入注册信息表明该PIA对应这个COM组件
5. 当用Visual Studio的Add Reference功能的时候,VS会自动去查找是否有符合条件的PIA(通过上面所说的注册信息),如果存在,则直接使用这个DLL
Blog: http://blog.csdn.net/atfield
转载请注明出处
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1562812
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- 转载:如何指定程序在Vista上面需要提升权限运行(Elevated)
- 如何知道可执行文件是32-bit还是64-bit
- .NET Interop: 从IErrorInfo错误对象获得托管代码的异常信息
- Microsoft Silverlight正式发布
- 国际化编程中Locale相关概念的一些解释
- PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
- C++反汇编揭秘2 – VC编译器的运行时错误检查(RTC)
- 进程编程3 - UNIX高级环境编程第9章读书笔记
- 转贴:C++ ABI: Exception Handling
- 转贴:libunwind文档
- 转贴:C++ ABI (Application Binary Interface)
- 进程编程2 – Unix环境高级编程8章读书笔记
- WPF/E简介
- Win32/MFC/COM学习推荐书籍