PDA

View Full Version : Distributing Windows apps with working manifests..


scratt
2006-10-16, 22:08
Yo...

Can anyone point me to a good source for 'how to' make release versions of apps... i.e. Proper release versions, and not the pseudo release versions that VS05 puts out!!!

I am currently trying to get (I know that chucker is going to kick my ass for this) a Win32 app and an MFC app to work for a client.. However, they are reporting that the app repeatedly tells them that the software is reporting via Windows that it is 'not installed correctly. Re-installing may help'.

This used to happen to me before I found an article linking to this handy installer..
http://faux.warwickcompsoc.co.uk/vcredist/vcredist_x86.exe

So far on my PeeCee at home, and Virtual PC on my G5, and Parallels I can get my apps to work.
What I do is stuff everything .dlls etc into the same folder as the app, and then install the above *thingy*.
Once that happens all the support libraries for VS that the app may need are on the machine.
However, this is a very *dirty* method of getting an app to work!

I can't seem to find any good tutorials on how to build a *real* release app, with a manifest, and am guessing it is perhaps hard as the intarweb seems very vague on it..

What I do know is that the above method is giving my client problems loading it on his machine... So that is not good! :(

Any good links would be appreciated.. Thanks.

(Sorry about the .NET thing, chucker, they just suited my needs and learning curve much more than trying to adopt .NET - also a very important library I need to use is not distributed in managed C so I just could not go that route!)

chucker
2006-10-16, 22:19
(I know that chucker is going to kick my ass for this) [..] (Sorry about the .NET thing, chucker, they just suited my needs and learning curve much more than trying to adopt .NET - also a very important library I need to use is not distributed in managed C so I just could not go that route!)

:lol:

It's okay. I forgive you. ;) :)

So anyway, I'm assuming this is VC++? It would seem you only need to distribute MFC40.DLL and MSVCRT.DLL.

scratt
2006-10-16, 22:30
Phew! :)

Yep, that's right. That's kind of what I thought.. And I just read the walkthrough on MSDN again, and it makes it seem so easy..

What I have done to date, as I mentioned, is stick the dlls you mention, and a whole host of my own dlls, in the same folder as the app and then just copied it from machine to machine..

If I ever forgot a dll, or put a release version in instead of a debug one (or visa versa), then the app would pretty much tell me right away.. No problem.

I have to admit I am wondering why this works for me, on several machines, and even VPC, but not for my client.. On my VPC machine I did have to install the x86 redist to get it to work though..

Obviously, I would like to be sure I am not doing anything stupid, before I start telling my client they are stooopid! :)

scratt
2006-10-16, 22:40
Would 64 bit and 32 bit machines make any difference to distributing this app?!?!

chucker
2006-10-16, 22:41
Well, there's always a chance that clients will have outdated or otherwise incompatible versions of the same DLLs ("DLL hell"), so shipping you're own if they're crucial and not too big is always a good idea. Apple tends to update system-wide frameworks with Software Update a lot, but Microsoft can't do that in a lot of cases for fear of breaking old apps.

chucker
2006-10-16, 22:43
Would 64 bit and 32 bit machines make any difference to distributing this app?!?!

I'm afraid I can't answer that. Unlike Mac OS X / NeXTSTEP, Windows doesn't have a mechanism to merge multiple architecture binaries into one. So you could have your installer determine the architecture and deploy a different set of binaries depending on that, but installing both versions probably isn't an option.

scratt
2006-10-17, 00:43
Thanks.. I am looking into the 64 bit aspect now..... Hrmpphh!