I was looking at sharing file extension registrations between
applications only yesterday. This page and its related content were most
useful
http://msdn.microsoft.com/en-us/library/bb166183(VS.80).aspx


-----Original Message-----
From: Happy Hondje [mailto:happyhon...@gmail.com] 
Sent: 19 November 2009 20:08
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Supplemental shell extensions installation

Hello WiXers,

I am new to Windows Installer and WiX, and thus have been pouring over
documentation. tutorials, samples and google the last few days. I see a
lot of basic information which is nice, but sadly, my needs aren't all
that typical. (This might become a rather long posting, so I will
apologize in advance for that.)

The reason is that my 'application' is fully compromised out of shell
extensions, the purpose being to give a more seamless experience in
using the applicable documents in every day use. (I have one
production-ready at this point, so I figured I'd look into getting a
basic installer ready that meets my requirements.) I foresee the
following big problems:


1. Architecture. Basically, there are two (or technically three)
possible scenario's:

* 32-bit shell extension on 32-bit platform.
* 64-bit shell extension on 64-bit platform. For maximum compatibility,
I would want the 32-bit shell extension installed as well.

>From what I understand based on some older posts on this mailing list,
WI/WiX sincerely dislikes mixed-architecture installations. Sadly, this
is a matter that can't be avoided. Paths, registry, they're both things
to be careful of. And ideally, there would be a single .msi and no
chance for user-error.


2. File extension ownership is an issue. Whereas dedicated applications
can simply take ownership of a file-extension, define their own
progid's, verbs and all that magic. This would be a supplemental package
that has no external dependancies, so the extensions it registers to may
be registered to ProductA, ProductB or even nothing at all. This means
the -target- ProgID for these registrations is flexible, falling down to
a default where nothing was hooked up just yet. And in the case
overwriting something IS unavoidable, it would be nice to be able to
restore these values upon uninstallation.


3. Making points 1 and 2 meet eye-to-eye, which would probably be the
most difficult.


For as far solutions go, let me first explain how I imagine the setup.
The entire application configuration experience would be done from a
feature tree in the setup. Think of something along the lines of:

[ ] .XYZ support.
[x] .DEF support.
[x] .DEF2 support.

Afterwards, the Change feature in the Installed Programs list could be
used to change or repair these shell extensions.

I was thinking of solving one of the architecture problems using the
bootstrapper burn. (I might be getting that one wrong, the fire-related
names are all one big blur after all this reading...) It could activate
the proper MSI for the proper platform.

The 32-bit support for 64-bit platforms is tricky. I thought about
having it optional, but I decided my users would only be confused if I
offered them a bitness option, so I want to have it turned on by
default. I recall reading somewhere that it is possible to do hidden
installs of other .msi packages, having no entries pop up in Installed
Programs etc. Assuming I understood that right, and assuming I can
somehow feed the 'installed features' from the 64-bit .msi to the 32-bit
.msi, I could avoid having two entries pop up in the Installed Programs
applet ('MyApp 32-bit', 'MyApp 64-bit').

At this point, it is kind of obvious to me that I will probably not want
to make the installable directory configurable, but have the setup copy
to 'C:\Program Files\MyApp' and 'C:\Program Files (x86)\MyApp' as
appropriate. If I did not and would let the user pick a location, they
might very will pick one of those places only to have half of the
functionality disappear on them depending on whether my shell extensions
were to be utilized from the native Explorer or a 32-bit application
using an Open File dialog.

The file extension ownership issues, and how to deal with different
ProgID's, are mysteries to me. I could probably figure out how to
install to a fixed ProgID with no regard of the users current installed
affairs, but that is not what I want. The concept of installing
extensions for files you don't actually own seems to be like a rare
occurrance. Who'd have guessed! :)


If anyone read this far, I commend you.

Now my questions are as follows, maybe not too specific, but still:


a) Objectively, is WiX the right option, or should I look at other
installers for this purpose?

b) Are there any samples of scripts that install shell extensions? I
have looked around, but found nothing. Reinventing the wheel is
something I will probably be pretty crappy at.

c) Likewise, are there any samples dealing with such specific
requirements for as far the platform goes? Again, my wheel would likely
not be all that round.


And similarly... I welcome any comments or other thoughts based on my
research so far. There's probably a few bad assumptions and
understandings, but as I said, I'm new to WI/WiX, and have studied as
much as I can make sense of.

Regards,

Jan Wester

------------------------------------------------------------------------
------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008
30-Day trial. Simplify your report design, integration and deployment -
and focus on what you do best, core application coding. Discover what's
new with Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
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.


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to