assemblies - How do I fix the CRT dependency causing a FileLoadException with my vc2005 mixed-mode DLL on XP? -


i have mixed-mode dll built in visual studio 2005. in dependency walker, dll showing dependency of following crt dlls. note on windows 7 developement machine.

c:\windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4927_none_d08a205e442db5b5\msvcp80.dll

"\msvcr80.dll

"\msvcm80.dll

8.0.50727.4927

on windows 7 dev machine using visual studio 2005 compiles , runs fine. problem wont run on windows xp test machine latest crt installed.

when drag dll depenency walker on xp machine seems searching dlls in \system32... (i went show full path , there no paths them, yellow exclamation mark)

the problem version (build 4927) of crt in winsxs not installed on xp test machine. has visual studio 2005 latest crt installed (sp1?).

8.0.50727.4053 latest version find on msdn.

i realize not exciting question posted on so, know 4927 runtime?

* edit *

the manifest generated mt.exe:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestversion="1.0">   <dependency>     <dependentassembly>       <assemblyidentity type="win32" name="microsoft.vc80.crt" version="8.0.50727.4053" processorarchitecture="x86" publickeytoken="1fc8b3b9a1e18e3b"></assemblyidentity>     </dependentassembly>   </dependency>   <dependency>     <dependentassembly>       <assemblyidentity type="win32" name="microsoft.vc80.crt" version="8.0.50727.762" processorarchitecture="x86" publickeytoken="1fc8b3b9a1e18e3b"></assemblyidentity>     </dependentassembly>   </dependency>   <dependency>     <dependentassembly>       <assemblyidentity type="win32" name="microsoft.vc90.crt" version="9.0.21022.8" processorarchitecture="x86" publickeytoken="1fc8b3b9a1e18e3b"></assemblyidentity>     </dependentassembly>   </dependency> </assembly> 

so, there 3 different versions targeting...

revision 4927 windows 7 specific version, used microsoft binaries. build should not create dependency on it, 4053 last 1 vs2005. don't troubleshoot depends.exe btw, isn't @ tracking winsxs dependencies.

start troubleshooting double-checking dependency build generates. first in vc\include\crtassem.h, _crt_assembly_version macro generates manifest entry. next check manifest that's embedded in executable. project's release directory contains .embed.manifest file embedded. , file + open + file on executable lets peek @ actual embedded rt_manifest resource.


Comments

Popular posts from this blog

android - Spacing between the stars of a rating bar? -

html - Instapaper-like algorithm -

c# - How to execute a particular part of code asynchronously in a class -