Tech Off Thread

5 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

IESHIMS.DLL & WER.DLL missing

Back to Forum: Tech Off
  • User profile image
    cro

    After deploying my application (MFC/VS 2008 SP1) on Windows XP, I get the complaint that the application configuration was incorrect and I should reinstall. vcredist is install. So I run depends and IESHIMS.DLL and WER.DLL are missing. How can I install thoses dll ?

     

    EDIT: ok after some investigation, it is a Side by Side error. I have create a sample test application and depends also tell me that ieshims.dll and wer.dll are missing, but the application run. How can I resolve a side by side error ?

     

  • User profile image
    Dexter

    Some missing dlls in Depends doesn't mean that they are a problem. Those 2 dlls you mention are normally delay loaded so the app should start fine even if they don't exist.

     

    In general the "application configuration was incorrect" error is caused by one of the following:

    - missing VC++ runtime (make sure you installed the correct version (watch out for service pack versions)

    - missing/incorrect manifest in application (you should be able to see the manifest with a resource viewer, if you don't have one just rename the .exe to .dll and drop it onto VS, it will open it in the resource viewer).

    - trying to run the debug version of the executable (the VC redist doesn't include the debug version of the VC++ runtime)

    - your application is using a thidr party dll (or maybe a static lib) and that dll depends on a different version of the VC++ runtime. I've seen this problem in a couple of cases, people get confused here because they think that if they build with VS 2008 (or whatever version) that's all they need in terms of runtimes.

  • User profile image
    cro

    Dexter said:

    Some missing dlls in Depends doesn't mean that they are a problem. Those 2 dlls you mention are normally delay loaded so the app should start fine even if they don't exist.

     

    In general the "application configuration was incorrect" error is caused by one of the following:

    - missing VC++ runtime (make sure you installed the correct version (watch out for service pack versions)

    - missing/incorrect manifest in application (you should be able to see the manifest with a resource viewer, if you don't have one just rename the .exe to .dll and drop it onto VS, it will open it in the resource viewer).

    - trying to run the debug version of the executable (the VC redist doesn't include the debug version of the VC++ runtime)

    - your application is using a thidr party dll (or maybe a static lib) and that dll depends on a different version of the VC++ runtime. I've seen this problem in a couple of cases, people get confused here because they think that if they build with VS 2008 (or whatever version) that's all they need in terms of runtimes.

    I use Stingray from Rogue Wave in my application. I add a chart in my test application and the manifest contain more information. I'm recompiling Stingray but I'm not sure if it will work after that.

     

    Without Stingray

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
    <requestedPrivileges>
    <requestedExecutionLevel level="asInvoker" uiAccess="false">
    </requestedExecutionLevel>
    </requestedPrivileges>
    </security>
    </trustInfo>
    <dependency>
    <dependentAssembly>
    <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8"
    processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b">
    </assemblyIdentity>
    </dependentAssembly> 
    </dependency>
    <dependency>
    <dependentAssembly>
    <assemblyIdentity type="win32" name="Microsoft.VC90.MFC" version="9.0.21022.8" 
    processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b">
    </assemblyIdentity> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
    
    processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*">
    </assemblyIdentity> 
    </dependentAssembly> 
    </dependency> 
    </assembly>

     

    With Stingray

    <?xml version='1.0' encoding='UTF-8' standalone='yes'?> 
    <assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
    <requestedPrivileges> 
    <requestedExecutionLevel level='asInvoker' uiAccess='false' /> 
    </requestedPrivileges> 
    </security> 
    </trustInfo> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' 
    processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.VC90.MFC' version='9.0.21022.8' 
    processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0'
    
    processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*' /> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' 
    processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' language='*' /> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.30729.4148'
    
    processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.VC90.MFC' version='9.0.30729.4148'
    
    processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.30729.4148'
    
    processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' language='*' /> 
    </dependentAssembly> 
    </dependency> 
    </assembly> 

     

  • User profile image
    Dexter

    cro said:
    Dexter said:
    *snip*

    I use Stingray from Rogue Wave in my application. I add a chart in my test application and the manifest contain more information. I'm recompiling Stingray but I'm not sure if it will work after that.

     

    Without Stingray

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
    <requestedPrivileges>
    <requestedExecutionLevel level="asInvoker" uiAccess="false">
    </requestedExecutionLevel>
    </requestedPrivileges>
    </security>
    </trustInfo>
    <dependency>
    <dependentAssembly>
    <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8"
    processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b">
    </assemblyIdentity>
    </dependentAssembly> 
    </dependency>
    <dependency>
    <dependentAssembly>
    <assemblyIdentity type="win32" name="Microsoft.VC90.MFC" version="9.0.21022.8" 
    processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b">
    </assemblyIdentity> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
    
    processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*">
    </assemblyIdentity> 
    </dependentAssembly> 
    </dependency> 
    </assembly>

     

    With Stingray

    <?xml version='1.0' encoding='UTF-8' standalone='yes'?> 
    <assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
    <requestedPrivileges> 
    <requestedExecutionLevel level='asInvoker' uiAccess='false' /> 
    </requestedPrivileges> 
    </security> 
    </trustInfo> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' 
    processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.VC90.MFC' version='9.0.21022.8' 
    processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0'
    
    processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*' /> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' 
    processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' language='*' /> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.30729.4148'
    
    processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.VC90.MFC' version='9.0.30729.4148'
    
    processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
    <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.30729.4148'
    
    processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' language='*' /> 
    </dependentAssembly> 
    </dependency> 
    </assembly> 

     

    The first manifest contains "Microsoft.VC90.DebugCRT". That's a debug version, won't work on a machine that doesn't have VS installed.

    The second manifest seems to reference 2 different versions of the runtime so you need to have both versions of the runtime installed on the machine. It's better to recompile the third party dll if you can, mixing 2 different versions of the runtime in a process needs to be done with care and perhaps a bit of black magic Smiley

  • User profile image
    cro

    Dexter said:
    cro said:
    *snip*

    The first manifest contains "Microsoft.VC90.DebugCRT". That's a debug version, won't work on a machine that doesn't have VS installed.

    The second manifest seems to reference 2 different versions of the runtime so you need to have both versions of the runtime installed on the machine. It's better to recompile the third party dll if you can, mixing 2 different versions of the runtime in a process needs to be done with care and perhaps a bit of black magic Smiley

    EDIT: look like I did not recompile correctly the third party app.

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.