Go Back   PackageDeploy Application Packaging Forums > Package Development > Application Packaging > Platformsdk MSI

Reply
 
LinkBack Thread Tools Display Modes
Old 03-15-2010, 06:55 PM   #1 (permalink)
minorguy
Guest
 
Posts: n/a
Default How to install two components but only upgrade one later?

Can anyone give me ideas on how to deal with this installation scenario? I’m
not sure how to do it.

I have two components, A and B. Component A depends on component B, so B
must be installed and be present for A to work. Component B is just a DLL
actually. But B requires a license and I only want to distribute it on CD.
The problem is, what if I find a bug in component A and I want to provide an
upgrade to fix it---say by web page download---but I don’t want to include
component B in the update because then any user who doesn’t have the CD could
get B for free. I’d like an upgrade that updates component A, but which will
not include or install component B. But it seems to me that any such update
would have the effect of removing component B from a user’s system that
already has it, which is not what I want to happen.

I had thought of just making a separate MSI installer for each component.
Then I would include both on the CD but offer updates for only component A by
web download. But the disadvantage with this idea is that A and B are really
meant to be one product, and if the user uninstalls component A, I want
component B to be uninstalled with it. And I don’t want component B to show
up in Add/Remove Programs---it’s meant to be invisible to the user.

How do I deal with this scenario? We have not shipped the initial CD yet so
I still have a little time to make sure the first version is right. By the
way, I’m using WiX to build MSIs.

Thanks.
  Reply With Quote
Old 03-15-2010, 06:55 PM   #2 (permalink)
Adrian Accinelli
Guest
 
Posts: n/a
Default Re: How to install two components but only upgrade one later?

"minorguy" <minorguy@discussions.microsoft.com> wrote in message
news:E70DF380-F8EC-4EEA-8180-F30C7A8A58D8@microsoft.com...
> Can anyone give me ideas on how to deal with this installation scenario?
> I'm not sure how to do it.
> I have two components, A and B. Component A depends on component B, so B
> must be installed and be present for A to work. Component B is just a DLL
> actually. But B requires a license and I only want to distribute it on
> CD. The problem is, what if I find a bug in component A and I want to
> provide an upgrade to fix it---say by web page download---but I don't
> want to include component B in the update because then any user who
> doesn't have the CD could get B for free. I'd like an upgrade that
> updates component A, but which will not include or install component B.
> But it seems to me that any such update would have the effect of
> removing component B from a user's system that already has it, which is
> not what I want to happen.
> I had thought of just making a separate MSI installer for each component.
> Then I would include both on the CD but offer updates for only component
> A by web download. But the disadvantage with this idea is that A and B
> are really meant to be one product, and if the user uninstalls
> component A, I want component B to be uninstalled with it. And I don't
> want component B to show up in Add/Remove Programs---it's meant to be
> invisible to the user.
> How do I deal with this scenario? We have not shipped the initial CD yet
> so I still have a little time to make sure the first version is right.
> By the way, I'm using WiX to build MSIs.
> Thanks.


First - you do not need to include changes for component B at all in your
main patch of the product. When you make your patch you will provide an
upgraded MSI admin image with which the differences will be examined and
placed into your patch package. If you do not updated component B in the
upgraded image then no changes will be made to it.

If you do need to upgrade component B then you should make use of a new
PatchFamily identifier in the MsiPatchSequence table in a new PCP file. In
this way you'll end up with two independent patch streams for the same
product. You'll make a second independent set of upgraded admin images to
produce this new patch stream in which you would update only component B
(and maybe custom actions related to the same component).

Doing this both the main patch and the secondary patch can be applied to the
same product at the same time and each can be upgraded independently from
one another which is likely what you are looking for.

For further information you should download and read the patch sequencing
whitepaper (several times probably

http://www.microsoft.com/downloads/d...displaylang=en

Sincerely,
Adrian Accinelli


  Reply With Quote
Old 03-15-2010, 08:01 PM   #3 (permalink)
minorguy
Guest
 
Posts: n/a
Default Re: How to install two components but only upgrade one later?

Hi Adrian,

Thanks for your advice. So it looks like a patch is what I would need. I
have not gotten familiar with patches yet, so I’ll need to read up on it.
There are just a couple of things I’m wary about. In the past, I’ve used a
major upgrade as a fallback for tougher situations since it uninstalls the
previous version automatically. (As an example, I ran into trouble when
trying to install a minor upgrade from CD onto a system where the previous
version had been installed from a file on hard disk. Windows Installer gave
me an error in that case and wouldn’t upgrade it.) Now I wouldn’t be able to
do that. But perhaps we can just give out an upgrade CD that does a major
upgrade when absolutely necessary. This product is a driver and software
associated with a device, not a pure software product.

Another small issue is that I’ve always only depended on having Windows
Installer 2.0 since I know that will be on Windows 2000 and later. I noticed
the patch sequencing requires 3.0; but I guess I can deal with that later.
Yes, you are right though, it would be ideal to upgrade each component
independently---to upgrade A without including B at all in the patch. So the
patch sequence table looks like the most promising thing so far.

  Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 10:40 PM.


vBulletin, Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
2007 - 2012 PackageDeploy.com