Sorry for my previous empty post. Must've got sent by accident.
Thanks, Peter, for your ideas. I’ll consider them.

>>Cant you just upgrade the older installer with the fixes to A, keeping B
as it was at release, and make that available to old users for download?

The old installer (pre-2010) did not include B. Yes, I could make two
separate upgrade installers, but it would get confusing for users to know
which one they were supposed to use.

>>Then make a later version of that installer with the new version of B and
make that available for new users on CD.

Upgrading people by sending them another CD would work but is kind of tough.
It requires them to call up to ask for it, and would be a cost to us. I
guess it depends how many of those users are out there, which I don’t know.
I may have misunderstood your suggestion, though.

>>If you don't want to make an upgrade installer you could make the upgrade
available as a patch (.msp) for older users. The patch would only contain
the changes to component A and couldn't be used without the older installer.
A patch is harder to write than a major upgrade but, if you haven't violated
component rules, it might work for you.

Yes that’s one possibility and I thought of that, too. I’m not so familiar
with patches so I’ll have to look into it. If it happens that we want to
update the driver part of it I’m not sure a driver can be patched. We use
DIFxApp for that.

I had another thought along the lines of the workaround I mentioned earlier.
I’m going to see if I can make an upgrade that can include a dummy component
B and then use a condition for it that which is always false so B doesn't
get installed. If that doesn’t work because it still removes existing,
installed component Bs (which I don’t want), then I’ll try to set the
condition dynamically at runtime depending on whether I find component B
already on hard disk. I’m not sure if that’s possible or if it will work so
I’ll need to experiment.

Thanks!

Jim

-----Original Message-----
From: Peter Shirtcliffe [mailto:pshirtcli...@sdl.com]
Sent: Thursday, June 09, 2011 1:37 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Upgrade without providing or removing some
previouscomponent.

Cant you just upgrade the older installer with the fixes to A, keeping B as
it was at release, and make that available to old users for download ? Then
make a later version of that installer with the new version of B and make
that available for new users on CD.

If you don't want to make an upgrade installer you could make the upgrade
available as a patch (.msp) for older users. The patch would only contain
the changes to component A and couldn't be used without the older installer.
A patch is harder to write than a major upgrade but, if you haven't violated
component rules, it might work for you.

 -----Original Message-----

From: Jim Hewes [mailto:jimhe...@gmail.com]

Sent: 09 June 2011 01:03

To: wix-users@lists.sourceforge.net

Subject: [WiX-users] Upgrade without providing or removing some previous
component.

 Due to my lack of expertise in installers, I think I got into a bad
situation with the wrong installer arrangement and I'm wondering what the
best way out of it is. I'm using WiX 3.0, but this is a more general install
problem so let me know if it's not appropriate to ask here.

I have an installer that installs two components A and B both within the
same feature. Component A is a device driver and some associated software.
Component B is a third-party library comprised of two DLLs and is used by
the driver/software. This third-party library requires a per-unit license.
We distribute this on CD with the device and so by counting the CDs we can
keep track of the licenses. We began including the library on the CD last
year. But there are older owners of the device who would want to download
the new version. We cannot put this installer on the web for download
because we can't count or track those licenses.

So the problem is, we want to upgrade Component A with bug fixes and make it
available for web download. But we can't include component B for license
reasons---because older users shouldn't get it for free. But if I leave
component B out of the upgrade, I believe the upgrade process will remove B
from the hard disk of legitimate owners of it. (I know if I had at least
made component B as a separate feature, I could specify that it not be
removed and do a major upgrade. But it's too late at this point.)

My best workaround idea so far is for the upgrade to include dummy DLLs for
component B that have a lower version number than the real ones. So when an
upgrade happens, the real DLLs already on hard disk will be left alone. And
for older users who don't have the license to the library, they will just
get the dummy DLLs installed. It's messy, and I hate to think I have to do
this for the life of the product. Is there a better way?

I think for the future I will put component B completely in its own
installer and put that only on the CD. But that doesn't help the current
problem.

Thanks for any help,

Jim
------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to