Re: Static or Shared MFC DLLs?
"Mikep" <mikep@NOSPAMturboware.com> wrote in message
news:uG16Kwq5JHA.1716@TK2MSFTNGP03.phx.gbl...
You're missing the point about "side-by-side" installation of the MFC
DLLs. No longer do you have the "DLL Hell" caused by some rogue app
installation replacing your MFC DLLs. That's the whole reason for the
manifest concept and the WinSxS, etc. It solves DLL Hell (and replaces
it with Manifest Purgatory).
Scot
Well, my stuff gets installed unto some 'hostile' environments -- think
factories in China.... And I've never had a problem with the static apps.
Ever... So what would dynamically linking buy me in terms of ease of
install, dependablily and support?
Mike P
Nothing beats static linking for ease of deployment. Nothing. You don't
have to worry about DLL's, and your app is xcopy deployable.
App-local deployment gives you the same easy of deployment and is xcopy
deployable (except now you have to xcopy a folder containing redistributable
DLL's and your .exe/.dll's), while offering the benefit of sharing one
instance of the CRT and MFC DLL's between several .exe's and .dll's, if that
is the makeup of your application. It also lets you create MFC Extension
DLL's, which is not possible with static linking. Another thing MS likes to
tout (but which I question whether is really a big benefit) is that it lets
user's independently update the CRT and MFC DLL's (say for security fixes),
and then Windows will load your app with those updated DLL's instead of the
ones your app-locally deploy. (To me, this potentially can break your app,
since your app is now running with untested DLL's. However, MS would rather
break your app than have it use DLL's they deem insecure.)
VC_Redist deployment is something I've never done. As Scot says, a killer
disadvantage is that user can uninstall it separately, rendering your app
useless.
Merge Modules (MSM) is also something I've never done, primarily because I
refuse to use the POS Windows Installer. It is the anti-thesis of xcopy
deployment in that it makes a simple task really hard, it is a memory pig,
it requires possibly updating the installer itself which requires a reboot
before it gets around to installing your app, it relies on a running service
which can be disabled, it thrashes your disk during installation like
nobody's business, and it does incredibly stupid things like "Calculating
necessary disk space" during an Uninstall (which deletes files and thus
increases available disk space). Industry standard, or not, it is a POS.
I use Nullsoft installer (NSIS) with either static linking or app-local.
-- David