Bear with me, there's a question or five (or at least a request for pointers)
at the bottom.

I am the developer of an open source plug-in to the commercial product 3ds
Max made by Autodesk. That product exists in a number of currently active
versions (pretty much on a yearly cycle, with up to 3 year lag in adoption).
Additionally, it exists in x86 and x64 versions. The binary API for the
plug-ins breaks every version, although source breakage is minor if any.
Additionally, users will typically have multiple versions of the host
application installed side-by-side.

Previously, I have used a combination of a visual studio build project and a
visual studio deployment project, and built one plug-in and installer per
combination. That's a lot of combinations, and last time, I spent an entire
Saturday just making all of that work, rather than working on the actual
plug-in code. Additionally, I discovered that the msi files generated by
Visual Studio 2005 sp1 Vista don't actually install correctly under UAC,
even if you press the "raise elevation" button -- you have to start the
installer from an admin command line for it to work right. Blech!

So, someone suggested I move to using WiX for generating installers. That
sounds like a good idea, at least in theory. I'm a generally savvy C++ and
XML developer, with a good grasp of Win32, but only a light smattering of
Windows Installer concepts. However, I've now put together a single Visual
Studio project that builds for all six different flavors (plus debug/release
versions of each), so half of the battle is won. 

Now I need to figure out how to create a WiX installer script for what I
want to do.

Unfortunately, almost all the documentation and samples I've found refer to
installing a typical application. I'm installing just a DLL, plus some
dependencies, plus some documentation, and I must install the DLL into a
very specific location based on where the host application is installed.
Until now, I've hard-coded the location (assuming it's always
ProgramFiles/Autodesk/3ds Max <version>/plugins), but if I'm doing it right,
I might as go ahead and get the correct install location out of the 3ds Max
installer information.

So, what I want to do is the following:
0) Scan for previous installations, and un-install them if present.
1) Scan for the presence of up to N different products (3ds Max of different
flavors), and extract the install directory for each of those.
2) Depending on the versions found, copy the right version(s) of the plug-in
to the right destination(s).
3) Extract the D3DX dependency installer, which is an EXE and a set of
cabs/msis, not available as merge modules, and execute that installer
silently in the background
4) Install the visual studio redist merge module for x86 and, if any x64
target is active, x64
5) Install the documentation in some reasonable place. I've been putting it
in the installdir, but it's probably better to put it in the user's
documents folder.

So, what all are the incantations I need to do to pull all of this off?
I think I know how to do 0) using RemoveExistingProducts.
I don't quite know how to do 1) -- I know how to use FindExistingProducts,
but not how to apply the findings to 2).
I'm a little hazy on 3). It only needs to be done once, even if multiple
versions of the DLL are installed. Is putting these files in a subfolder of
the temp directory, and then chaining out to the EXE the right thing to do?
If so, what actions/elements should I use for this?
4) I can do this using Merge in my Product, I believe?
5) How do I handle the case of "current user" vs "all users" when it comes
to documentation? Putting it on the desktop, or the user's documents folder,
used to generate a warning about this in the Visual Studio deployment
project set-up.

I understand that I probably should solve one problem at a time, but I
figured that if I intrude on the attention of the list readers, I might as
well put all the known questions in a single message. Looking forward to any
replies, and thanks in advance!

-- 
View this message in context: 
http://www.nabble.com/Bewildered-and-confused-%28installing-multiple-versions-of-an-application-plug-in%29-tp16475968p16475968.html
Sent from the wix-users mailing list archive at Nabble.com.


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to