Discussion:
Side by Side assembly problem
(too old to reply)
pete
2010-03-29 22:10:10 UTC
Permalink
I have a dll that won't load because MSVCR90.dll is missing (this is
reported by my app as well as depends.exe).

Since I can build the dll myself, I checked the generated manifest files
content, it is:

<?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>
</assembly>

I checked if I had this dll in my windows\winsxs folder and found it here:

C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91\msvcr90.dll

I'm lost as to why my dll doesn't load when this file is clearly installed.
What else is needed?

Pete
Wilson, Phil
2010-03-29 23:15:20 UTC
Permalink
If there are (or were) other versions of the CRT in WinSxs there may also be
some publisher policy somewhere. It would be unusual for publisher policy to
redirect you to a missing version, but it might happen. Installing the CRT
is sometimes done with merge modules as part of a client MSI-based install,
and some people include the publisher policy files and some don't. Some
people install with the vcredist exe, and that creates an Add/Remove
Programs entry that can be uninstalled leaving I don't know what behind.
--
Phil Wilson
The Definitive Guide to Windows Installer
http://www.apress.com/book/view/1590592972
Post by pete
I have a dll that won't load because MSVCR90.dll is missing (this is
reported by my app as well as depends.exe).
Since I can build the dll myself, I checked the generated manifest files
<?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>
</assembly>
C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91\msvcr90.dll
I'm lost as to why my dll doesn't load when this file is clearly
installed. What else is needed?
Pete
Wilson, Phil
2010-03-29 23:17:30 UTC
Permalink
P.S there is a related thread in vstudio.general where it appears that
dependency walker doesn't correctly resolve the WinSxS policy files.
--
Phil Wilson
The Definitive Guide to Windows Installer
http://www.apress.com/book/view/1590592972
Post by pete
I have a dll that won't load because MSVCR90.dll is missing (this is
reported by my app as well as depends.exe).
Since I can build the dll myself, I checked the generated manifest files
<?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>
</assembly>
C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91\msvcr90.dll
I'm lost as to why my dll doesn't load when this file is clearly
installed. What else is needed?
Pete
Loading...