From time to time the need arises for me to create a command line application for Windows using Visual Studio 2008. Lately I keep forgetting the same thing for my project and when I copy the application over to another Windows machine that doesn’t have VS2008 installed, I run into the following error “The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more details.”. Unfortuantly what I fail to remember is that by default VS2008 wants me to create managed code.
In your event viewer under “System” you will probably see something like “Dependent Assembly Microsoft.VC90.CRT could not be found and Last Error was The referenced assembly is not installed on your system.”
You can avoid this one of two ways. Find the Visual Studio 2008 redistributable and send that along with your console application, or create a statically compiled application.
I prefer the statically compiled application for small things. In order to create a basic Command Line application, set your project settings as below:
In Configuration Properties -> General settings:
– Use of MFC=”Standard Windows” or “Static Library”
– Use of ATL=”Not using ATL” or “Static Link”
– Common Language Runtime=”No Common Language Runtime”
In C/C++ -> Code Generation:
– Runtime Library-> “Multi-threaded” or “Multi-threaded Debug” depending on the Build Configuration you are configuring “Release” or “Debug”