How do I make sure I have all the right files to distribute my application?

Posted on 2009-04-24
Last Modified: 2013-12-14
I have written a win32  VC++ application (in Visual Studio 2008)  that uses winsock32, the windows SDK (I remember having to install this), and several open source libraries and DLLs.  It runs fine on my machine (Win XP SP3), and if I copy all the files from my project Release folder into another folder on my machine it also runs fine.  But when I copy those same files over to another PC (also running Win XP SP3, but without dev environment) and try to run it I get a message that says:

"The system cannot execute the specified program."

There is no other output.

I've looked around, but most comments around EE and the web seem to involve either users distributing debug builds (mine is release) or .NET apps without the .NET distributable (this is not .NET).

I've run dependency walker on it and see several missing DLLs, but they seem to be far down the dependency tree of winsock32.dll and I'm not sure if I should be searching around for those files to copy them over.  (To be honest, I'm not sure if I understand what dependency walker is telling me anyway).

Could someone help me figure out how to figure out what is missing?

Edit: I added an image of the red dll modules from Dependency Walker.
They are:
LIBSASL.DLL (This is a dependency in libcurl)
Question by:wdoutre
    LVL 40

    Accepted Solution

    Build a deployment project, which will allow you to distribute a .msi file. The deployment project will take care of the dependencies for you.

    In your solution, right click on the Solution, Add -> New Project
    Choose Other Project Types -> Setup and Deployment

    You'll need to specify primary output of your code project, but once you are done, its pretty easy.

    Here is a tutorial:

    Author Closing Comment

    Using the Setup Project got me to a point where I was getting useful error messages, that told me which DLLs could not be found.

    I then used Dependency Walker on the functioning executable to find the missing DLLs on my development machine.  I added those files to the Setup project, rebuilt and everything works now.


    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    6 Surprising Benefits of Threat Intelligence

    All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

    One of the most frequently asked questions on EE in the "Windows Installer" zone is how to eliminate self-triggered installation of some product.  The problem occurs when, suddenly, whenever a certain application is launched, or even when a folder i…
    Have you tried to learn about Unicode, UTF-8, and multibyte text encoding and all the articles are just too "academic" or too technical? This article aims to make the whole topic easy for just about anyone to understand.
    This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
    The viewer will learn how to use NetBeans IDE 8.0 for Windows to connect to a MySQL database. Open Services Panel: Create a new connection using New Connection Wizard: Create a test database called eetutorial: Create a new test tabel called ee…

    737 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

    19 Experts available now in Live!

    Get 1:1 Help Now