Windows 7 COM+;应用程序客户端代理在Windows 2003 Server和Windows 7上导出

Windows 7 COM+;应用程序客户端代理在Windows 2003 Server和Windows 7上导出,windows-7,windows-server-2003,com+,Windows 7,Windows Server 2003,Com+,在Windows 2003 Server和Windows 7上,导出COM+应用程序客户端代理时,代理的DLL不包括在创建的MSI文件中。MSI将安装,但由于未包含DLL,因此无法实例化远程应用程序 从Windows 2000服务器导出的同一COM+应用程序包含DLL,但是安装程序不会在Windows 7计算机上运行。为什么在Windows 2003服务器或更高版本上导出的COM+应用程序中缺少DLL? 您不能再将COM+DLL安装到服务器上的System32文件夹中。在Windows 2003

在Windows 2003 Server和Windows 7上,导出COM+应用程序客户端代理时,代理的DLL不包括在创建的MSI文件中。MSI将安装,但由于未包含DLL,因此无法实例化远程应用程序


从Windows 2000服务器导出的同一COM+应用程序包含DLL,但是安装程序不会在Windows 7计算机上运行。

为什么在Windows 2003服务器或更高版本上导出的COM+应用程序中缺少DLL?
您不能再将COM+DLL安装到服务器上的System32文件夹中。在Windows 2003 server及更高版本(包括Windows 7)中,导出COM+软件包时,将不会导出在Windows\System32(或其下的文件夹)中注册的任何DLL。根据微软的支持,这是设计的。(此信息尚未由Microsoft公开发布,因此我们不得不与他们一起开罚单以发现问题。)

症状是导出的MSI文件不包含COM+DLL,如果:
1.COM+DLL已在System32中注册,
2.COM+软件包在Windows 2003或更高版本上导出。
MSI将被创建并安装,但是应用程序将无法实例化对象,因为DLL从未安装。使用安装编辑器(如Wise安装编辑器)打开MSI将显示MSI中不包含DLL

答案是在Windows\System32以外的文件夹中注册COM+应用程序DLL

为什么从WINDOWS 2000 SERVER导出的COM+应用程序不安装在WINDOWS 7上?
COM+有两个版本:v1.0和v1.5。不同的操作系统导出和安装这些版本的各种组合:

导出客户端代理
-Server 2000导出1.0格式
-Windows 2003可以导出1.0或1.5版本
-Windows 2008/7只能导出1.5版本
安装客户端代理
-Windows XP可以安装1.0或1.5格式的代理
-Windows 7只能安装1.5格式的代理

COM+应用程序必须在Windows 2003或更高版本上以COM+1.5格式导出,才能在Windows XP和Windows 7客户端上安装