Prev: How to disable list box of a combo
Next: Crash in CFileDailog when called from hook procedure (OFNHookProc)
From: nani on 6 May 2010 07:26 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 6 May 2010 09:10 "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 6 May 2010 10:32 "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 7 May 2010 02:24
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. |