views:

86

answers:

2

I have a simple .exe written in C++ (built with Visual Studio 2005) that tests some hardware using a supplied API. It works fine on the Windows 7 machine I built it on, but when I copy it to another (Windows 7) machine and run it (from the command-line) I get:

The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail.

What is "side-by-side configuration"?

I ran sxstrace.exe and read the usage info. It appears I would need to instrument my exe to generate a log file for sxstrace.exe to be useful?

I imagine the problem is my exe requires DLLs that either don't exist on the other machine, or are the wrong version. How do I find out what DLLs my exe uses, and what versions it links to on my machine (where it works)? Any other advice on copying it to another machine and getting it running? Would more information help?

+1  A: 

Are you suffering from the same issue as this guy? http://stackoverflow.com/questions/1372604/side-by-side-assemblies-windows-7-and-visual-studio-2005

spirulence
Actually at first glance, it looks like the top answer to this question (linked to from the question you linked to) will help: http://stackoverflow.com/questions/985277/
Daryl Spitzer
A: 

mfawzymkh's answer to the "application has failed to start because the side by side configauration is incorrect" question (linked to in the question spirulence linked to in his answer to this question) appears to apply to this question also. mfawzymkh writes:

You can resolve this issue by either one of these 1- Install VC8 Debug CRT 2- Build you app as statically linked

And mfawzymkh's comment on that same answer explains how to build as statically linked:

when you build it in VS, go to projects->settings->C/C++->Code Generation and choose Runtime Lib options to be /MTd instead of /MDd

I did that and the side-by-side configuration message is gone. (And after installing something else for the DLL I was using, my EXE works.)

Daryl Spitzer