From: nani on
Hi
I've created app using MFC in VS 2008 SP1, when tested on other
machines I've got error(s), all point to missing dll's. Did try to
statically link but that provided more errors on compiling my project,
so I've decided to build msi setup deployment. My first issue is
weather to use merge modules or redistribute re-dist packets (which I
would download from MS). Then (if I would go for later solution) I
would need to resolved next few steps:
- check if target PC already have vs2008 sp1 re-dist files installed
- if not, check for platform version 32 or 64 and then
- install corresponding re-dist (obviously I need to notify user about
installing needed files).

That leaves some other questions, when uninstalling app what to do
with re-dist, uninstall it also or leave it as it is. Maybe this
approach would be correct - if you installed it with yours app then
uninstall it both with app. This meaning maintain info about whether
re-dist was installed or not.

Let's take a look at following case, I install my app on target
machine, when installing I detect the presence of all needed files
on computer so no need for re-dist. All works fine until existed re-
dist being uninstall by another app uninstalling, next my app doesn't
run any more. So user must run my msi setup reinstall my app.

Is there someone who is more experience who can help me.
Thanks in advance and sorry for my bad language.
From: GT on
"nani" <cagalj.josip(a)gmail.com> wrote in message
news:863e3d14-3681-4ce3-833e-9d0d7a48cadb(a)o8g2000yqo.googlegroups.com...
> Hi
> I've created app using MFC in VS 2008 SP1, when tested on other
> machines I've got error(s), all point to missing dll's. Did try to
> statically link but that provided more errors on compiling my project,
> so I've decided to build msi setup deployment. My first issue is
> weather to use merge modules or redistribute re-dist packets (which I
> would download from MS). Then (if I would go for later solution) I
> would need to resolved next few steps:
> - check if target PC already have vs2008 sp1 re-dist files installed
> - if not, check for platform version 32 or 64 and then
> - install corresponding re-dist (obviously I need to notify user about
> installing needed files).
>
> That leaves some other questions, when uninstalling app what to do
> with re-dist, uninstall it also or leave it as it is. Maybe this
> approach would be correct - if you installed it with yours app then
> uninstall it both with app. This meaning maintain info about whether
> re-dist was installed or not.
>
> Let's take a look at following case, I install my app on target
> machine, when installing I detect the presence of all needed files
> on computer so no need for re-dist. All works fine until existed re-
> dist being uninstall by another app uninstalling, next my app doesn't
> run any more. So user must run my msi setup reinstall my app.
>
> Is there someone who is more experience who can help me.
> Thanks in advance and sorry for my bad language.

If you use the redist files, then your customers will have to do multiple
installs, which is untidy and not guaranteed to work (some users won't
bother to run the redist). Using merge modules are better as you can build
the merge module into your single MSI install package. Also, merge modules
are taken from your PC when you compile your installation project (MSI) so
you will always get the correct version from your PC when you build the
installation kits.


From: David Ching on
"GT" <a.b.c> wrote in message
news:4be2bfd7$0$12754$c3e8da3(a)news.astraweb.com...
> "nani" <cagalj.josip(a)gmail.com> wrote in message
> news:863e3d14-3681-4ce3-833e-9d0d7a48cadb(a)o8g2000yqo.googlegroups.com...
> If you use the redist files, then your customers will have to do multiple
> installs, which is untidy and not guaranteed to work (some users won't
> bother to run the redist). Using merge modules are better as you can build
> the merge module into your single MSI install package. Also, merge modules
> are taken from your PC when you compile your installation project (MSI) so
> you will always get the correct version from your PC when you build the
> installation kits.

The idea is for the installer to launch the redist files, so the customers
won't have to do it themselves. The rule for redist files is: *never
uninstall them*. Another app might depend on them. They do add an entry to
Add/Remove programs that the user might accidentally uninstall because they
don't know it is required for your app, which is why I don't like the redist
files, it's another point of failure. That's why I agree with you that
merge modules are better. Actually, my favorite deployment is app-local
where the DLL's are put into the same (or a sub-) folder of the .exe, or
static linking. Both of these allow xcopy deployment.

-- David

From: Goran on
On May 6, 1:26 pm, nani <cagalj.jo...(a)gmail.com> wrote:
> Hi
> I've created app using MFC in VS 2008 SP1, when tested on other
> machines I've got error(s), all point to missing dll's. Did try to
> statically link but that provided more errors on compiling my project,
> so I've decided to build msi setup deployment. My first issue is
> weather to use merge modules or redistribute re-dist packets (which I
> would download from MS). Then (if I would go for later solution) I
> would need to resolved next few steps:
> - check if target PC already have vs2008 sp1 re-dist files installed
> - if not, check for platform version 32 or 64 and then
> - install corresponding re-dist (obviously I need to notify user about
> installing needed files).
>
> That leaves some other questions, when uninstalling app what to do
> with re-dist, uninstall it also or leave it as it is. Maybe this
> approach would be correct - if you installed it with yours app then
> uninstall it both with app. This meaning maintain info about whether
> re-dist was installed or not.
>
> Let's take a look at following case, I install my app on target
> machine, when installing   I detect the presence of all needed files
> on computer so no need for re-dist. All works fine until existed re-
> dist being uninstall by another app uninstalling, next my app doesn't
> run any more. So user must run my msi setup reinstall my app.
>
> Is there someone who is more experience who can help me.
> Thanks in advance and sorry for my bad language.

As David said, people should not uninstall redist modules. At my work,
we install that module and did not have a problem you speak of, at
least not so far. But it is true that we (and you) should instead
install appropriate merge modules.

Goran.