2011-04-06 52 views
1

仍然試圖解決這一問題寫清單,以便運行時文件:C++ DLL使用CLR:如何從的SxS使用

Problem loading C runtime library from executable and DLL

我的問題是我的C++ DLL使用CLR(.NET 3.5編譯,在Visual Studio 2008)不會從winSxS文件夾訪問C運行庫DLL(msvcr90.dll,msvcm90.dll和msvrp90.dll),當時該DLL將從我的C#WPF應用程序加載。

它確實從winSxS找到C運行庫DLL是從C++命令行工具加載的DLL。

看來我需要修改我的DLL的清單文件來解決這個問題。我怎樣才能做到這一點?

+1

你或許應該更新[你原來的問題(HTTP://計算器。問題/ 5570472 /問題加載-c-runtime-library-from-executable-and-dll)而不是創建一個副本。 – 2011-04-06 18:58:11

+0

嗯,這是我試圖解決的同樣的問題,但我問了一個不同的問題。 – Warpin 2011-04-06 18:59:00

+2

同樣的問題,相同的答案。你沒有跟進評論中的提示,只是重新發布這個問題是毫無意義的。 – 2011-04-06 19:04:58

回答

0

這是我不得不放在清單中強制運行時DLL的特定版本。因爲它們的存在在我的機器上的SxS文件夾,它們是從該位置加載:

<?xml version="1.0" encoding="utf-8"?> 
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.30729.4926" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b" /> 
    </dependentAssembly> 
    </dependency> 

[...]