Invalid manifest / missing DLL dependencies

EDN Admin

Well-known member
Joined
Aug 7, 2010
Messages
12,794
Location
In the Machine
<p align=left>Hello,
<p align=left> 
<p align=left>My project called Project1 (unmanaged C++ DLL with Visual Studio 2005) dont use external DLL others than Windows DLLs (Winsocks, ..) and Microsoft Libc.
<p align=left> 
<p align=left>When I make a simple console application linked to Project1 it works perfectly.
<p align=left> 
<p align=left>But when I make an ISAPI extension (very simple, no ATL, only displaying "hello world") linked to my project, the ISAPI failed to load with a "module not found" error. If I dont link ISAPI project to Project1 it works.
 
<p align=left>When using Dependency Walker (v 2.2) on Project1.dll it says that "msvcr80d.dll" is missing.
 
<p align=left>I did some testing, linked the libc to the ISAPI extension and Dependency Walker still says msvcr80d.dll missing for Project1 but found it for ISAPI DLL. Looks like both DLLs are not asking for the same msvcr80d.dll ?
<p align=left> 
<p align=left>I add a new project Project2, doing nothing but calling libc. With the same settings than Project1 (I used diff tools on project files to be sure there are the same). ISAPI is now linked to Project1 and Project2.
<p align=left> 
<p align=left>Dependency Walker still fail finding msvcr80d.dll for Project1 but find it for ISAPI and Project2.
<p align=left> 
Ive looked at Project1 manifest file Project1.dll.embed.manifest, it looks like correct with :
<p align=left>  <font color="#0000ff" size=2>
<?</font><font color="#a31515" size=2>xml</font><font color="#0000ff" size=2> </font><font color="#ff0000" size=2>version</font><font color="#0000ff" size=2>=</font><font size=2>"</font><font color="#0000ff" size=2>1.0</font><font size=2>"</font><font color="#0000ff" size=2> </font><font color="#ff0000" size=2>encoding</font><font color="#0000ff" size=2>=</font><font size=2>"</font><font color="#0000ff" size=2>UTF-8</font><font size=2>"</font><font color="#0000ff" size=2> </font><font color="#ff0000" size=2>standalone</font><font color="#0000ff" size=2>=</font><font size=2>"</font><font color="#0000ff" size=2>yes</font><font size=2>"</font><font color="#0000ff" size=2>?>
<</font><font color="#a31515" size=2>assembly</font><font color="#0000ff" size=2> </font><font color="#ff0000" size=2>xmlns</font><font color="#0000ff" size=2>=</font><font size=2>"</font><font color="#0000ff" size=2>urn<img alt="Tongue Tied" src="http://forums.microsoft.com/MSDN/emoticons/emotion-7.gif chemas-microsoft-com:asm.v1</font><font size=2>"</font><font color="#0000ff" size=2> </font><font color="#ff0000" size=2>manifestVersion</font><font color="#0000ff" size=2>=</font><font size=2>"</font><font color="#0000ff" size=2>1.0</font><font size=2>"</font><font color="#0000ff" size=2>>
<</font><font color="#a31515" size=2>dependency</font><font color="#0000ff" size=2>>
<</font><font color="#a31515" size=2>dependentAssembly</font><font color="#0000ff" size=2>>
<</font><font color="#a31515" size=2>assemblyIdentity</font><font color="#0000ff" size=2> </font><font color="#ff0000" size=2>type</font><font color="#0000ff" size=2>=</font><font size=2>"</font><font color="#0000ff" size=2>win32</font><font size=2>"</font><font color="#0000ff" size=2> </font><font color="#ff0000" size=2>name</font><font color="#0000ff" size=2>=</font><font size=2>"</font><font color="#0000ff" size=2>Microsoft.VC80.DebugCRT</font><font size=2>"</font><font color="#0000ff" size=2> </font><font color="#ff0000" size=2>version</font><font color="#0000ff" size=2>=</font><font size=2>"</font><font color="#0000ff" size=2>8.0.50727.762</font><font size=2>"</font><font color="#0000ff" size=2> </font><font color="#ff0000" size=2>processorArchitecture</font><font color="#0000ff" size=2>=</font><font size=2>"</font><font color="#0000ff" size=2>x86</font><font size=2>"</font><font color="#0000ff" size=2> </font><font color="#ff0000" size=2>publicKeyToken</font><font color="#0000ff" size=2>=</font><font size=2>"</font><font color="#0000ff" size=2>1fc8b3b9a1e18e3b</font><font size=2>"</font><font color="#0000ff" size=2>></</font><font color="#a31515" size=2>assemblyIdentity</font><font color="#0000ff" size=2>>
</</font><font color="#a31515" size=2>dependentAssembly</font><font color="#0000ff" size=2>>
</</font><font color="#a31515" size=2>dependency</font><font color="#0000ff" size=2>>
<p align=left></</font><font color="#a31515" size=2>assembly</font><font color="#0000ff" size=2>>
 
<p align=left> 
<p align=left><font color="#000000 But the Project1.dll.embed.manifest.res is not :</font>
<p align=left><?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly manifestVersion="1.0" xmlns="urn<img alt="Tongue Tied" src="http://forums.microsoft.com/MSDN/emoticons/emotion-7.gif chemas-microsoft-com:asm.v1 </assembly>
<p align=left> 
<p align=left><font color="#000000 With a lot of trailing spaces.</font>
<p align=left><font color="#000000 </font> 
<p align=left><font color="#000000 if I open Project1.exe resources the manifest is empty too.</font>
<p align=left><font color="#000000 </font> 
<p align=left><font color="#000000 When I build project with "Clean" / "Rebuild" I noticed that in the begining of the build process the file Project1.dll.embed.manifest is created but with no dependencies. At the end of the build process the file Project1.dll.embed.manifest is updated with correct dependencies and the Project1.dll.embed.manifest.res file is created. It looks like manifest file is updated after res file is created.</font>
<p align=left><font color="#000000 </font> 
<p align=left><font color="#000000 I tried the FAT fix in project settings but it dont help (I use NTFS). </font>
<p align=left><font color="#000000 </font> 
<p align=left><font color="#000000 I dont see any solution, any help would be very appreciate.</font></font>
 
<p align=left>Thank you.

View the full article
 
Back
Top