I have an ActiveX control which needs to be deployed in client machine and i am planning to do this by supplying installers to the clients .
我有一个ActiveX控件需要部署在客户端机器上,我打算通过向客户端提供安装程序来实现这一点。
I have made separate msi packages for 64 and 32 bit operating systems and it works properly.
我为64位和32位操作系统制作了单独的msi包,它可以正常工作。
However , i face a problem when it comes to 64 bit machines since i have the following requirement ,
但是,我遇到64位机器的问题,因为我有以下要求,
In case of 32 bit machine install 32 bit ActiveX control.
如果是32位机器安装32位ActiveX控件。
In case of 64 bit machine install both 32 and 64 bit ActiveX control.
如果64位机器安装32位和64位ActiveX控件。
I read many articles stating hybrid installations cannot be done using basic msi installers ?
我读过很多文章说使用基本的msi安装程序无法完成混合安装?
Can this be done using a single setup.exe file ?
可以使用一个setup.exe文件来完成吗?
2 个解决方案
#1
1
A single MSI cannot both install files or registry to 64-bit locations on a 64-bit system and run on a 32-bit system. So assuming your 64-bit ActiveX control must be installed to or registered in a 64-bit location, you cannot do this in a single MSI.
单个MSI既不能将文件或注册表安装到64位系统上的64位位置,也不能在32位系统上运行。因此,假设您的64位ActiveX控件必须安装到64位位置或在64位位置注册,则不能在单个MSI中执行此操作。
If you have the premier edition of InstallShield 2012, this is one of the use cases of the Suite (or Suite/Advanced UI) project type. You must create two MSI files, and include them both in the suite with relevant eligibility conditions. (The exact conditions depend on whether you make the MSIs standalone or cumulative, but the 64-bit MSI should only be eligible if the platform has an architecture of x64.)
如果您拥有InstallShield 2012的首要版本,则这是套件(或套件/高级UI)项目类型的用例之一。您必须创建两个MSI文件,并将它们包含在具有相关资格条件的套件中。 (具体条件取决于您是将MSI设置为独立还是累积,但只有平台具有x64体系结构时,64位MSI才有资格。)
#2
1
You can have both 32bit and 64bit components within a single installer and make it to decide what to install depending on the target platform as below.
您可以在一个安装程序中同时拥有32位和64位组件,并根据目标平台决定安装什么,如下所示。
1) Create two new features(one for 32 and one for 64) and add conditions to both of them.
1)创建两个新功能(一个用于32,一个用于64)并为它们添加条件。
for 32 bit -> Not VersionNT64
for 64 bit -> VersionNT64
2) Add both prerequisites and select appropriate (parent) feature for each one
2)添加两个先决条件并为每个先决条件选择适当的(父)功能
#1
1
A single MSI cannot both install files or registry to 64-bit locations on a 64-bit system and run on a 32-bit system. So assuming your 64-bit ActiveX control must be installed to or registered in a 64-bit location, you cannot do this in a single MSI.
单个MSI既不能将文件或注册表安装到64位系统上的64位位置,也不能在32位系统上运行。因此,假设您的64位ActiveX控件必须安装到64位位置或在64位位置注册,则不能在单个MSI中执行此操作。
If you have the premier edition of InstallShield 2012, this is one of the use cases of the Suite (or Suite/Advanced UI) project type. You must create two MSI files, and include them both in the suite with relevant eligibility conditions. (The exact conditions depend on whether you make the MSIs standalone or cumulative, but the 64-bit MSI should only be eligible if the platform has an architecture of x64.)
如果您拥有InstallShield 2012的首要版本,则这是套件(或套件/高级UI)项目类型的用例之一。您必须创建两个MSI文件,并将它们包含在具有相关资格条件的套件中。 (具体条件取决于您是将MSI设置为独立还是累积,但只有平台具有x64体系结构时,64位MSI才有资格。)
#2
1
You can have both 32bit and 64bit components within a single installer and make it to decide what to install depending on the target platform as below.
您可以在一个安装程序中同时拥有32位和64位组件,并根据目标平台决定安装什么,如下所示。
1) Create two new features(one for 32 and one for 64) and add conditions to both of them.
1)创建两个新功能(一个用于32,一个用于64)并为它们添加条件。
for 32 bit -> Not VersionNT64
for 64 bit -> VersionNT64
2) Add both prerequisites and select appropriate (parent) feature for each one
2)添加两个先决条件并为每个先决条件选择适当的(父)功能