What is the difference between dependencies and manually add dll / ocx in vs installer 6?

I am using vs installer to create an installation package for my vb6 application. and the problem is I can see that the explorer project has a list of dependencies associated with my exe file.

alt text http://img505.imageshack.us/img505/9696/croppercapture259lr8.png

and in the file system in the machine sketch tree I can actually store the dll / ocx in a folder or in the Windows system folder itself [in the left window].

alt text http://img101.imageshack.us/img101/9224/croppercapture251qm1.png

so I don't understand if there is actually a difference? if i just installed dependencies and didn't add dll or ocx to sys sys folder or folder then dll will be copied automatically as well?

0


source to share


2 answers


All of these DLLs are not guaranteed to be present on the system on which the software is installed. Therefore, they must be included in your installer. From there, you have two choices.

They can be installed in Windows system folders or in your application folder. The difference is that if you install them in your application folder, you can set things up on XP and Vista so that different versions of software with different versions of components can run and work side by side. Installing them in the system folder will destroy any old version that depends on the old version of the components.

Installing to the application folder rarely fails if a component depends on other components that cannot be updated. When this happens, it usually happens with the Microsoft libraries. They have improved over the years.



You can read more about side-by-side issues here

Finally, the dependencies need to be in your installer for them to be registered in the Windows registry. Unlike most .NET assemblies, any ActiveX / COM application must have a registered component in order to use it, even if you use the CreateObject and Variant types to access it.

I admit that the whole process is special and is one of the sources of DLL Hell stories. Start with the MSDN article, use wikipedia and of course ask additional questions here.

+1


source


Usually you shouldn't have a "dlls" folder in your application folder for a regular installer package, but there are many factors (proprietary standard DLLs, Reg-Free COM, etc.). Yes, dependencies are included (if you don't exclude them). Each of these must have a property that determines where they are installed on the target systems.

You also have a few components in this list that are either not redistributed in this way because they are OS-specific system components, MDAC components, or not licensed to redist (like fm20.dll).



Unfortunately, this is an example of a package type that can lead directly to DLL Hell for your users' systems. Fixing this could mean examining each MS component in the MS KB articles to determine what can or should be redistributed and how.

Deployment can be a hectic business to get right.

0


source







All Articles