Solved

Redistributable files and their details

Posted on 2003-11-19
20
867 Views
Last Modified: 2007-12-19
While packaging dependencies with Inno setup or any setup, there are some common set of Microsoft files like msvcrt.dll, comdlg32.dll, mfc42.dll etc. On surfing the net, I have so far received mixed information about these Dll's and whether they need to be there in a setup or not? What I want to know is a source on net where I can see details for respective Dll's. I have scanned msdn but there is not direct definition or detail of respective dll's. Example: should msvcrt be different for Win98 and XP and whether it should be installed on these machines or not?
0
Comment
Question by:Sethi
  • 8
  • 7
  • 2
  • +3
20 Comments
 
LVL 3

Expert Comment

by:NBrownoh
Comment Utility
well i think that with each release of an operating system the basic function names and functionality of those functions was kept the same.  If you were to release a winXP dll that was also included with Win9x it should just be a better version with a few more functions.  Though i have heard of some things causing winnt to crash, but this is a very selective group i think.
0
 
LVL 18

Author Comment

by:Sethi
Comment Utility
I have been taking chances with these DLL's for last 5 years now and have been using PDW. This time, I am taking my time to get into details becuase it is not worth spending time at client site when these clashes happen. So any detail or link would be appreciated.
0
 
LVL 3

Expert Comment

by:NBrownoh
Comment Utility
http://www.mztools.com/

that what i currently use now, its free and a wonderful overall tool much better than aivisto or whatever.

I use it for a lot of different things of course but it has a tool that makes a xml documentation file that among other things shows you all references your program uses, this might be usefull.
0
 
LVL 1

Expert Comment

by:vkaushik
Comment Utility
One of the best of breed is to Use Install shield, it has a dynamic scan as well as static scan for all the dependent files/dlls for the project/executable you want to build setup. They have merge module files for all dependencies and you just need to include the correct merged module file ..msi file into your build plus any external dlls/other files you want to include.
0
 
LVL 29

Expert Comment

by:Nightman
Comment Utility
Install Shield is excellent - I am currently using Developer 8. The merge modules are downloadable from http://www.installshield.com, and can be re-used. The greatest advantage of using microsofts merge modules for installing their components is that you simply have to include them in the install project - any logic such as OS version checking, install locations, and dependancies are handled automatically. It can also perform these dependancy scans on .Net assemblies - all in all I think it is the best application out there.

You can also create your own merge modules for libraries, dlls  and other components (or groups of components) that you have developed that seldom change.

I'm not sure what the current price is, but I paid about $600 for it last year (and the western lanugage pack was approx. $250 - this allows you to deploy install sets in multiple languages).


Hope this helps.

Cheers
Night
0
 
LVL 18

Author Comment

by:Sethi
Comment Utility
I cant afford to spend that amount. As i mentioned, I am using Inno setup and I find it as an excellent tool. All I want to know is a link to some site or some knowledgebase on net where I can read details of common Microsoft dll's and known problems with them. I have created everything with my Inno setup and this is the only thing that is left.
0
 
LVL 29

Accepted Solution

by:
Nightman earned 500 total points
Comment Utility
Hmm. I'm not sure if there is a kba anywhere that describes the version - OS dependancy. I will try and find out.

An alternative would be to actually test all your install sets on various OS's before deploying. I have a second PC with Norton's Ghost installed, and multiple images (Win95,98,98SE,2K,2Ksp1-4,XP,XP sp1,XP sp2). If I want to test on a particular OS, I simply restore one of the saved images.

Obviously this would require a second PC (probably more than $600, unless you already have an old one that you can use), as well as Norton's Ghost (not sure what this costs these days - check out http://www.symantec.com)

Cheers
Night
0
 
LVL 29

Expert Comment

by:Nightman
Comment Utility
http://www.dll-files.com - a good resource for downloading dll's.

Best thing I can suggest is the MSDN (either your local copy, or http://msdn.microsoft.com). If I remember correctly, each OS install and service pack lists the dll's and versions deployed - you could either search these individually, or create your own local database as you find out more about each dll.

Usually dll versions that are backward compatible (i.e. binary compatible - the interface has probalby not been changed, or it has simply been extended) retain the same name, while newer versions with different interfaces have new names. This means that 'theoretically' it is safe to replace an existing MS dll with a newer version. However, this should probably be tested.

Cheers
Night
0
 
LVL 18

Author Comment

by:Sethi
Comment Utility
What exactly does Norton Ghost does?
0
 
LVL 29

Expert Comment

by:Nightman
Comment Utility
Saves an image of the installed partition for restoring at a later stage. I have 2 drives in my machine - one holds the OS and installed partition, another holds saved images of partitions. I do a fresh installation of say, win98SE on the c:\. When I'm finished, I then use Ghost to save the image to the second driver. Then, whenever I want to test on a clean machine (with no extra dll's, runtime components, etc), I simply use Ghost to restore the clean image. This means that I don't have to go through the hassle of re-installing the PC whenever I want to test on a specific OS - I simply restore the image and ...

Cheers
Night
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 18

Author Comment

by:Sethi
Comment Utility
This sounds very interesting. I have two machine networked with each other. One is the development machine I am working on A and the other is RND machine wherein I do all RND work B. I have been formatting and reinstalling things on that machine for RND work. This means, I can simply take an image of hard disk of machine B and store it on this machine A and after RND restore the image from this machine A to that machine B. Is it that simple?
0
 
LVL 29

Expert Comment

by:Nightman
Comment Utility
Theoretically, yes.

However, networked drives could be a problem - I don't think that Ghost supports network config (will look up - but I think you would have to create a boot disk that sets the network config and then runs the ghost.exe - I haven't tried it as I have extra hard drive space), which means that you will not be able to restore across the network. It's better to create a seperate partition on you Machine B's hard drive to store the images (or a entirely seperate drive, if you have one).

Otherwise once it's configured, it is literally that simple - note though that the latest version of ghost does not support Windows 2003 Server.
0
 
LVL 29

Expert Comment

by:Nightman
Comment Utility
link to ghost:

http://www.symantec.com/sabu/ghost/

Pricing ranging from $69.99 (Home/Retail User).
0
 
LVL 18

Author Comment

by:Sethi
Comment Utility
I missed your comment on http://www.dll-files.com. I went through this site today morning and all it is offering is the download of latest Dll's. regarding my own database of Dll's, this is what I am doing. I am storing most commonly required Dll's in a folder with their version no. etc and in VB I have created an application that displays me a list of DLL's in that folder. While creating a setup in Inno, I will click the files i want to include in a setup and the DLL's will be copied in the destination folder. However, before copying these DLL's I want to be sure that they would not crash the client machine. Although the possibilty is remote but why take a risk and why not know more about these DLL's. That's why I am hunting for the correct source. MSDN unfortunately doesn't explain about these DLL's, or may be I am not able to search it properly. There are some contradictions that are coming from MSDN. There are statements like Comdlg32.dll is not distributable but if you use PDW it will distribute it. So, I want to be sure about what is correct before going ahead from here.
0
 
LVL 26

Expert Comment

by:EDDYKT
Comment Utility
>>which means that you will not be able to restore across the network.

It may not be true, We use ghost 2003 and can restore from network MAP drive

It only works on 3com 905 network card but doesn't work on dlink network card.
I believe they don;t have newer driver to support newer hardware

8->
0
 
LVL 29

Expert Comment

by:Nightman
Comment Utility
Like I said - I haven't tried it.

Surely you would be able to write your own autoexec.bat / config.sys, etc (for those of use that still remember how to work with them - damn I'm getting old) - and load the drivers this way from a custom boot disk (i.e. a copy of theirs, with the relevant files hacked to suit your purposes)?


0
 
LVL 18

Author Comment

by:Sethi
Comment Utility
Friends, I appreciate this solution, but at the moment I am looking for some links and knowledgebase for common ddl's that need to be installed immediately in a day or so.
0
 
LVL 29

Expert Comment

by:Nightman
Comment Utility
Sethi

Unfortunately MSDN documentation is the best I can suggest. Again, your alternatives are to purchase expensive (but reliable) install-set authoring software that can manage you dependancies / version checking / OS version checking automatically (or create your own MergeModule to do this if they don't already exist)  or ensure that your software is tested on each OS that you support (which should be done anyway).

Many companies are moving away from providing support to the older OS - we have just terminated official support for Win98SE - we now require Win2K or later. This has also aided in minimising the volume of components to be redistributed, as there are some that are now redundant (eg JET) or get installed on the machine with the OS. I guess this would depend on your client requirements, though.

Sorry for the sidetrack ;)

Cheers
Night
0
 
LVL 18

Author Comment

by:Sethi
Comment Utility
I am thankful to all. Will wait till tommorow before accepting an answer.
0
 
LVL 9

Expert Comment

by:Valliappan AN
Comment Utility
Will this help you?

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q169/2/02.asp&NoWebContent=1

You might also like to download the trial versions of Sertup factory, or InstallShield and then try with your App and could fine the needed files, if its only for one-time use.

Otherwise, as suggested by others, better to go for Install Shield or a similar product. I am not used to InnoSetup, btw.

Cheers.
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Introduction I needed to skip over some file processing within a For...Next loop in some old production code and wished that VB (classic) had a statement that would drop down to the end of the current iteration, bypassing the statements that were c…
The debugging module of the VB 6 IDE can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture.   There is also a companion Debug Toolbar that looks like the followin…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now