The MSI SDK says "a 32-bit package consists of only 32-bit components" so 
you're not really playing by those rules.  There's also this: 

http://blogs.msdn.com/b/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx
 

If you have 32-bit and 64-bit clients I find it generally works better to 
explicitly build both architectures, and register the 32-bit one in WoW6432 and 
the 64-bit one in native, and locate them somewhere other than the program 
files folder. COM components are potentially shared, so installing a COM Dll 
into a variable folder like program files means that different packages can put 
different versions of it in multiple places, and that's not going to work. 

Phil Wilson.


-----Original Message-----
From: Sanjay Poria [mailto:sanjay.po...@xanalys.com] 
Sent: Wednesday, October 12, 2011 6:47 AM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] Registry key issues on 64-bit Win 7

I believe I have some more information about this after further testing.

Basically, if I start up a 32bit command prompt (%windir%\SysWoW64\cmd.exe) 
from my 64bit machine, and run my VBScript, everything works fine. I would have 
thought that since my .NET class can natively run on either architecture, I 
should be able to register the DLL via Wix so that it can run from a 64 bit app 
or from a 32-bit app. However, since the COM server DLL is installed in 
"Program Files (86)", I can only write registry entries to the Wow6432Node. 

Is this a Wix limitation? I suspect if I can duplicate the registry entries (a 
copy in HKCR and HKCR\Wow6432Node), I can start the COM server without issues 
in a 32bit or 64bit app.

Cheers
sanjay 

> -----Original Message-----
> From: Sanjay Poria [mailto:sanjay.po...@xanalys.com]
> Sent: 11 October 2011 22:31
> To: wix-users@lists.sourceforge.net
> Subject: [WiX-users] Registry key issues on 64-bit Win 7
> 
> I have created a Wix installer for a 32-bit application (not .NET)
> which installs just fine. Recently, I had to create a COM Server
> written in .NET consisting of a single DLL which also had to be
> installed (and used by) my original application.
> 
> So basically I wrote the COM server in C# (target=Mixed Platforms) with
> the relevant interface and class decorated with the required COM
> attributes by following the instructions in this post:
> http://stackoverflow.com/questions/3360160/how-do-i-create-an-activex-
> com-in-c
> 
> Next I harvested the registry entries of the DLL and added the
> appropriate component into my installer (it installs into "Program
> Files (x86)\Company\ProductName") with the extracted entries. Now,
> Installing on my 64-Bit Win 7 machine, the component above writes the
> ProgId entries into HKCR but writes all elements of the form:
> 
> <RegistryValue Root="HKCR"
> 
> Into HKCR\Wow6432Node\CLSID
> 
> This basically seems to break the COM server (eg, a VB Script fails to
> create the object). However, if I mark the new component as
> Win64="yes", the RegistryValue entries get installed into
> HKLM\Software\Classes and everything works although Wix gives me an
> error that I am installing a 64-bit component into 32bit INSTALLDIR.
> 
> Can anybody provide guidance as to what I should be doing?
> 
> Any help is appreciated.
> 
> sanajy


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2d-oct
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


*** Confidentiality Notice: This e-mail, including any associated or attached 
files, is intended solely for the individual or entity to which it is 
addressed. This e-mail is confidential and may well also be legally privileged. 
If you have received it in error, you are on notice of its status. Please 
notify the sender immediately by reply e-mail and then delete this message from 
your system. Please do not copy it or use it for any purposes, or disclose its 
contents to any other person. This email comes from a division of the Invensys 
Group, owned by Invensys plc, which is a company registered in England and 
Wales with its registered office at 3rd Floor, 40 Grosvenor Place, London, SW1X 
7AW (Registered number 166023). For a list of European legal entities within 
the Invensys Group, please go to http://www.invensys.com/en/legal/default.aspx.

You may contact Invensys plc on +44 (0)20 3155 1200 or e-mail 
recept...@invensys.com. This e-mail and any attachments thereto may be subject 
to the terms of any agreements between Invensys (and/or its subsidiaries and 
affiliates) and the recipient (and/or its subsidiaries and affiliates).



------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2d-oct
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to