locked
"Application has failed to start because its side-by-side configuration is incorrect" RRS feed

  • Question

  • Hi.

    1) I made a program.

    2) The program uses MFC (shared DLL) and DX9. (Using d3dx9.lib; not d3dx9d.lib.) No ATL; no CLR.

    3) The release .exe runs fine on my computer.

    4) I'm using Windows 7 Premium.

    5) I'm using VC++ '08.

    6) The .exe doesn't run on other comps except those that have VC++ on it.

    7) I installed the Redistributable Package x86 SP1 and non-SPI for '08.

    8) Still don't work.

    9) wtf?

    Please tell me how to solve this problem. I've already put my foot through the wall out of frustration with this error. The other answers you gave prior to this either don't work or don't make sense.

    Thank you for any help.

    Wednesday, November 17, 2010 12:45 AM

Answers

  • VC++ 2008 uses fusion (SxS) to tell the OS which version of the runtimes to load, which it does by examining the manifest for the application.  Depending on your scenario, you might just need to deploy the .exe.manifest file to the other computer.  If you are doing this, you'll need to diagnose the SxS setup failure.  This is a fairly good article on doing so: http://blogs.msdn.com/b/junfeng/archive/2006/04/14/576314.aspx

    Edit: here's a StackOverflow discussion that details another way you can deal with this (AppLocal deployment): http://stackoverflow.com/questions/1698195/microsoft-assembly-configuration-for-32-bit-mixed-c-c-application

    • Marked as answer by Yi Feng Li Wednesday, November 24, 2010 3:09 AM
    Wednesday, November 17, 2010 1:34 AM
  • Hi WD103,

    It could be a problem from either CRT or DX9 or both. We need to know how you deploy the application.

    Have you use some custom manifest to configure the side by side assembly? If so, show use your manifest.

    If all the manifest is created by VS, make sure you install the correct version of CRT package on target machine. You also need to confirm that the last DX9 is installed in the target machine.

    If we rebuild the application with static MFC library, does it work on target machine? In this case, it will not require the CRT to run.

    In addition, I suggest you use Dependency walker to check if there are some DLL/Library  is missing on target machine.

    Cheers,

    Yi

     

     


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    • Marked as answer by Yi Feng Li Wednesday, November 24, 2010 3:09 AM
    Thursday, November 18, 2010 7:56 AM

All replies

  • VC++ 2008 uses fusion (SxS) to tell the OS which version of the runtimes to load, which it does by examining the manifest for the application.  Depending on your scenario, you might just need to deploy the .exe.manifest file to the other computer.  If you are doing this, you'll need to diagnose the SxS setup failure.  This is a fairly good article on doing so: http://blogs.msdn.com/b/junfeng/archive/2006/04/14/576314.aspx

    Edit: here's a StackOverflow discussion that details another way you can deal with this (AppLocal deployment): http://stackoverflow.com/questions/1698195/microsoft-assembly-configuration-for-32-bit-mixed-c-c-application

    • Marked as answer by Yi Feng Li Wednesday, November 24, 2010 3:09 AM
    Wednesday, November 17, 2010 1:34 AM
  • Hi WD103,

    It could be a problem from either CRT or DX9 or both. We need to know how you deploy the application.

    Have you use some custom manifest to configure the side by side assembly? If so, show use your manifest.

    If all the manifest is created by VS, make sure you install the correct version of CRT package on target machine. You also need to confirm that the last DX9 is installed in the target machine.

    If we rebuild the application with static MFC library, does it work on target machine? In this case, it will not require the CRT to run.

    In addition, I suggest you use Dependency walker to check if there are some DLL/Library  is missing on target machine.

    Cheers,

    Yi

     

     


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    • Marked as answer by Yi Feng Li Wednesday, November 24, 2010 3:09 AM
    Thursday, November 18, 2010 7:56 AM