[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

how to find all dependency dll's to include them in application delivery

Posted on 2009-07-14
2
Medium Priority
?
390 Views
Last Modified: 2013-12-26
I am trying to make a installer for an application that does not require to include multiple and large additional files, like i.e. .NET service Pack 2.1 20 or 3.5 etc.
So what I am looking for is a dependency walker that allows me to copy all required dll's to one place so I can includen them in my installation.

Or do you have any other suggestions for the issue?
Basic thing is that the application that works on my machine does not work on all the others due to some missing windows update packages etc - thus I need to include them in my installation. But instead of including the original large packages I'd like to include only the dll's I need from them..
0
Comment
Question by:Seppoo
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 31

Accepted Solution

by:
Zoppo earned 1500 total points
ID: 24847420
Hi Seppoo,

I don't think it's a good idea to just copy system DLLs onto a target machine because you can't grant these DLLs are working correctly with those installed on the system. You can't simply copy all system DLLs needed for any Windows-Version, i.e. Kernel32.dll or other very basic DLLs can't be exchanged between differen Windows-Versions.

IMO you should either see if it's possible to compile your application into a single EXE (i.e. by static linking of C-Runtime and MFC [if used]) or create a setup containing original Microsoft redistributable packages.

In the some latest versions of Visual Studio it's quite easy to create a very simple Setup, just add a new Project of Type 'Other Project Types->Setup and Deployment->Setup Project' to your solution and 'fill' it with your application dependencies. Or you can use some other Setup creation package, i.e. InstallShield from Microsoft or the OpenSource Tool NSIS (http://nsis.sourceforge.net/Main_Page).

Hope that helps,

ZOPPO
0
 
LVL 39

Expert Comment

by:itsmeandnobodyelse
ID: 24847761
>>>> because you can't grant these DLLs are working correctly with those installed on the system.
Some of these dlls you could copy into the folder where the application exe resides. That way they wouldn't collide with those installed at the target system. But as that wouldn't work with registered dlls and hence is not recommendable to do so.

Instead you should/could do:

1. For MS libraries and subsystems like .NET or Visual C++ runtime, get a download from MS download page suitable for the target system. Then install it separately (prior) to installing your executables. You also could install these packages within your own setup but that probably is much more difficult and may have the problem that newer updates of the packages must be installed separately anyhow. So, it is not much won. Also if you have different target platforms you would need to distribute packages for any of them.

2. For third party libraries you probably integrate their runtime setup into your own setup. If the have no own setup you may copy their dlls to the application folder as told above and - if needed - add them to .manifest (XP only) or registry. The .manifest is a .NET way to use individual versions of a dll without needing to install them globally for the target system. If you have no .manifest or can't use it, dlls were registered by calling regsvr32. But in that case your setup must check whether the dll is not already registered at the target system. In that case things get complicated cause some other application may need a different version than your's what could give unsolvable issues.  
0

Featured Post

Learn Veeam advantages over legacy backup

Every day, more and more legacy backup customers switch to Veeam. Technologies designed for the client-server era cannot restore any IT service running in the hybrid cloud within seconds. Learn top Veeam advantages over legacy backup and get Veeam for the price of your renewal

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
THe viewer will learn how to use NetBeans IDE 8.0 for Windows to perform CRUD operations on a MySql database.
The viewer will learn how to use and create keystrokes in Netbeans IDE 8.0 for Windows.

649 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