Showing posts with label 32 bit MSI. Show all posts
Showing posts with label 32 bit MSI. Show all posts

Friday, October 9, 2015

How to write to 64bit registry path from a 32bit MSI using a MST using ORCA tool

In my earlier blog, I posted about how to create a transforms file to install a registry to 64 bit location in 64 bit OS using transforms in a 32 bit vendor MSI using Installshield tool.


So, in this current post I will explain how to achieve this using a simple ORCA tool.


1) Open the MSI using ORCA tool. Select Tansforms from the menu bar and click on New Transforms. This will create a new transforms where you can do the modifications.


2) Add a new row in Component table and create a new component and set the Attribute field to 256 as shown below.


Component attribute 256 - Set this bit to mark the component as a 64-bit component. (https://msdn.microsoft.com/en-us/library/aa368007(v=vs.85).aspx)


uidd43.png




3) Add a row in FeatureComponents table and map the newly created component to an existing Feature.


wiaRBZ.png


4) Go to Registry table and select the registry for which needs to be installed to 64-bit path and set the Component field to the newly created obove component.


OJfpj1.png


5) After doing the changes, select Generate Transforms from the Transforms Menu bar.


s2Jlho.png


6)) Test for the functionality by executing the msi command along with the transforms file.


msiexec.exe /I "path to msi" TRANSFORMS="path to transforms file" /qb!


NOTE: Since the MSI is meant to be 32-bit, you can ignore the ICE 80 error instead of messing up with the MSI and changing its behavior and just document the acceptance of the ICE80.

How to write to 64bit registry path from a 32bit MSI using a MST(Transforms)

Question : I have a 32bit MSI. I want to add a registry. The registry should be installed to 64bit registry section. How I can do it using Transforms in Installshield?


Answer : Make the component having the registry as 64-bit component and change the template summary. Note keep only the registry that needs to be in 64 bit, and move all other files or registry to another component.


Steps:


Using Installshield:


1. Check for the registry that needs to be installed to 64 bit location. Fetch its component name.


mCc65z.png


2. Go to the respective component and make it as 64 -bit as shown below. Do read the instructions pointed below in arrow mark.


fme6Fs.png


3. Save the transforms and validate it for any errors. Since we have added a 64 -bit component,
validation will show ICE 80 error.


cQMqrs.png


4) To resolve the error, go to template summary and change the value to Intel64;1033.


WWEp1Q.png


5) Test for the functionality by executing the msi command along with the transforms file.
msiexec.exe /I "path to msi" TRANSFORMS="path to transforms file" /qb!


NOTE: Since the MSI is meant to be 32-bit, you can ignore the ICE 80 error instead of messing up with the MSI and changing its behavior and just document the acceptance of the ICE80.