On Tue, Sep 22, 2009 at 9:18 PM, Nate Hekman <hek...@geo-slope.com> wrote:

> David, what I want is to do this the right way.  I'm not "determined" to
> pursue any particular road yet.  Just trying to figure out what the "right
> way" is.
>
> I'd read Heath's blog article that you point out, and it certainly seems to
> indicate that what I'm trying is the wrong approach, but it's still not
> clear to me what the alternative looks like.  (I'm also curious why Wise had
> no difficulty doing what Heath says won't work.)
>
> My only requirements are:
> - On a 32-bit OS:  the 32-bit exe and 32-bit shell extension dll must be
> installed and registered.
> - On a 64-bit OS:  the 32-bit exe and 32-bit shell extension dll must be
> installed and registered, AND the 64-bit shell extension dll likewise.  (I
> was under the impression they would have to be in the same folder together,
> but if I'm wrong that's fine.  All I care about is that they BOTH get
> installed.)
>

On a 64 bit OS, I don't think a 32bit shell extension will ever be used, but
this is just a hunch.



> I'd rather only have one .msi to ship, but if that's not the "right way",
> I'll settle for shipping two.
>
> It's clear that if I must make multiple .msi files, then I can make one of
> them that's for my 32-bit users, that doesn't even include any 64-bit stuff.
>  That's easy.
>
> So what are you (and Heath) saying about my 64-bit users?  Do they have to
> first run a 32-bit .msi to install the exe and 32-bit dll, and then run a
> 64-bit m


A 64-bit installer can install 32 bit components just fine, it's just the
other way that does not.

/Simon



> Nate
>
>
>
>
> -----Original Message-----
> From: David Watson [mailto:dwat...@sdl.com]
> Sent: Tuesday, 22 September 2009 11:40 AM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Installing 64-bit shell extension with a 32-bit
> app
>
> Hi,
>        The correct way to install 64 and 32 bit files onto a 64bit system
> is with separate packages, see...
>
> http://blogs.msdn.com/heaths/archive/2008/01/15/different-packages-are-required-for-different-processor-architectures.aspx
>
>
> >From what I understand you want to install everything into the same folder
> (which will get redirected automatically by windows) and then tie into
> explorer by inserting a key into the 64bit registry.
>
> If you are determined to do this from one 32bit msi then it may be possible
> if you author your own registry custom action that passes the extra
> parameters, see
> http://msdn.microsoft.com/en-us/library/aa384129(VS.85).aspx<http://msdn.microsoft.com/en-us/library/aa384129%28VS.85%29.aspx>
>
> Dave
>
>
>
> -----Original Message-----
> From: Nate Hekman [mailto:hek...@geo-slope.com]
> Sent: 22 September 2009 18:22
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Installing 64-bit shell extension with a 32-bit
> app
>
> I'm new at this, so certainly correct me if I'm wrong, but installing it in
> a different folder doesn't sound kosher to me.  The user, for example, may
> have picked a completely different folder to install to, say "L:\My Install
> Folder".  In that case my BINDIR will map to "L:\My Install
> Folder\MyCompany\MyApplication\Bin".  I can't force the 64-bit dlls into a
> completely different part of their filesystem.
>
>
> -----Original Message-----
> From: Brant Gurganus [mailto:br...@gurganus.name]
> Sent: Tuesday, 22 September 2009 10:48 AM
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] Installing 64-bit shell extension with a 32-bit
> app
>
> What is preventing you from installing it in the 64-bit program files where
> it is supposed to go?
>
> Brant Gurganus
> http://gurganus.name/brant
>
>
>
> On Tue, Sep 22, 2009 at 12:14 PM, Nate Hekman <hek...@geo-slope.com>
> wrote:
> > I have a 32-bit application that include a 32-bit shell extension dll
> > that handles thumbnails and a few other shell extensions.  I want to
> > add a 64-bit version of that same dll to the mix to get the same
> > thumbnails et al working in 64-bit Windows Explorer.
> >
> >
> >
> > Can someone tell me (or point me to documentation) what the proper way
> > is to do this?
> >
> >
> >
> > Here's what I've been using for the 32-bit dll.  The RegistryValue
> > line with [BINDIR] in the Value is the line that causes me trouble
> > when I get to 64-bit.
> >
> >
> >
> >    <DirectoryRef Id="BINDIR">
> >
> >      <Component Id="GSIShell"
> > Guid="2EAEEF9B-7385-4d12-811C-68E26FB5E66D">
> >
> >        <File Id="GSIShellDLL" Source="$(var.TargetDir)GSI.Shell.dll"
> > KeyPath="yes" Checksum="yes"/>
> >
> >        <RegistryKey Root="HKCR"
> > Key="CLSID\{5D1A01C2-BD6D-45c7-BC8E-C419E2F08B70}"
> > Action="createAndRemoveOnUninstall">
> >
> >          <RegistryValue Type="string" Value="GszIconShlExt Class"/>
> >
> >          <RegistryKey Key="InprocServer32"
> > Action="createAndRemoveOnUninstall">
> >
> >            <RegistryValue Type="string"
> > Value="[BINDIR]\gsi.shell.dll"/>
> >
> >            <RegistryValue Type="string" Name="ThreadingModel"
> > Value="Apartment"/>
> >
> >          </RegistryKey>
> >
> >        </RegistryKey>
> >
> >      </Component>
> >
> >    </DirectoryRef>
> >
> >
> >
> > [BINDIR] is defined earlier in the .wxs file as:
> >
> >
> >
> >      <Directory Id="TARGETDIR" Name="SourceDir">
> >
> >        <Directory Id="ProgramFilesFolder">
> >
> >          <Directory Id="COMPANYDIR" Name="MyCompany">
> >
> >          <Directory Id="SOFTWAREDIR" Name="MyApplication">
> >
> >            <Directory Id="BINDIR" Name="Bin"/>
> >
> >          </Directory>
> >
> >        </Directory>
> >
> >      </Directory>
> >
> >
> >
> > So on a 64-bit OS that installs the GSI.Shell.dll file into C:\Program
> > Files (x86)\MyCompany\MyApplication\Bin, and the Registry key
> > HKCR\Wow6432Node\CLSID\{5D1A01C2-BD6D-45c7-BC8E-C419E2F08B70}\InprocSe
> > rv
> > er32's value is "C:\Program Files
> > (x86)\MyCompany\MyApplication\Bin\gsi.shell.dll".
> >
> >
> >
> > Then I add the 64-bit dll similarly.  The file needs to be placed in
> > the same bin folder as the 32-bit version, but I want to be editing
> > the 64-bit portion of the Registry, so I add Win64="yes" to the
> Component.
> >
> >
> >
> >    <DirectoryRef Id="BINDIR">
> >
> >      <Component Id="GSIShell64"
> > Guid="2EAEEF9B-7385-4d12-811C-68E26FB5E66D" Win64="yes">
> >
> >        <File Id="GSIShell64DLL"
> > Source="$(var.TargetDir)GSI.Shell64.dll" KeyPath="yes"
> > Checksum="yes"/>
> >
> >        <RegistryKey Root="HKCR"
> > Key="CLSID\{5D1A01C2-BD6D-45c7-BC8E-C419E2F08B70}"
> > Action="createAndRemoveOnUninstall">
> >
> >          <RegistryValue Type="string" Value="GszIconShlExt64 Class"/>
> >
> >          <RegistryKey Key="InprocServer32"
> > Action="createAndRemoveOnUninstall">
> >
> >            <RegistryValue Type="string"
> > Value="[BINDIR]\gsi.shell64.dll"/>
> >
> >            <RegistryValue Type="string" Name="ThreadingModel"
> > Value="Apartment"/>
> >
> >          </RegistryKey>
> >
> >        </RegistryKey>
> >
> >      </Component>
> >
> >    </DirectoryRef>
> >
> >
> >
> > This gives me an error on the RegistryValue line with [BINDIR] in the
> > Value:
> >
> >
> >
> > Error LGHT0204: ICE80: This 64BitCompnent GSIShell64 uses
> > 32BitDirectory BINDIR.
> >
> >
> >
> > I've done a lot of googling and most responses are "you shouldn't be
> > installing 64-bit dlls with a 32-bit app".  But that's absolutely not
> > true, as these dlls are used by the shell, not by my application.
> > There must be other people with this same problem.  What's the solution?
> >
> >
> >
> > Thanks for any help!
> >
> >
> >
> >
> >
> > Nate
> >
> >
> >
> > ----------------------------------------------------------------------
> > -------- Come build with us! The BlackBerry&reg; Developer Conference
> > in SF, CA is the only developer event you need to attend this year.
> > Jumpstart your developing skills, take BlackBerry mobile applications
> > to market and stay ahead of the curve. Join us from November 9&#45;12,
> > 2009. Register now&#33; http://p.sf.net/sfu/devconf
> > _______________________________________________
> > WiX-users mailing list
> > WiX-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
>
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry&reg; Developer Conference in SF, CA is
> the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
> http://p.sf.net/sfu/devconf_______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry&reg; Developer Conference in SF, CA is
> the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
> http://p.sf.net/sfu/devconf_______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
> SDL PLC confidential, all rights reserved.
> If you are not the intended recipient of this mail SDL requests and
> requires that you delete it without acting upon or copying any of its
> contents, and we further request that you advise us.
> SDL PLC is a public limited company registered in England and Wales.
>  Registered number: 02675207.
> Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6
> 7DY, UK.
>
>
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
> http://p.sf.net/sfu/devconf
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
> http://p.sf.net/sfu/devconf
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to