我在2010年MSVS MFC項目當我編譯它,MSVS生成包含以下行清單文件:爲什麼MSVS 2010 MFC項目依賴vcredist_x86.exe進行MSVS 2008?
<assemblyIdentity publicKeyToken="1fc8b3b9a1e18e3b"
processorArchitecture="x86" version="9.0.21022.8"
name="Microsoft.VC90.CRT" type="win32"/>
其結果是,我得到這取決於兩個選擇vcredist_x64.exe爲MSVS二進制2008和MSVS 2010的vcredist_x86.exe,儘管它實際上只使用vcredist_x86.exe來MSVS 2010!
我試圖關閉項目屬性中的清單生成。之後,我的應用程序開始只安裝MSVS 2010的vcredist_x86.exe。但是一些控件(特別是組合框)破裂並開始顯示不正確。我想這是因爲窗口沒有從以下信息清單更多:
<assemblyIdentity language="*" publicKeyToken="6595b64144ccf1df"
processorArchitecture="x86" version="6.0.0.0"
name="Microsoft.Windows.Common-Controls" type="win32"/>
- 爲什麼MSVS清單文件寫CRT的版本錯誤?
- 如何解決問題/使MSVS在清單文件中寫入正確版本的CRT?
我想通了。我參考了libcurl.lib,它引用了在MSVS 2008中編譯的openssl庫...在用正確版本的openssl重建libcurl之後,對crt 9.0的引用從清單文件中消失。
我不確定,但我回想起當時的情況。你是否應用了Service Pack 1? – lakeweb
你應該寫一個簡短的答案並接受它,而不是編輯你的問題的答案。這使得未來的訪問者更容易發現問題已經得到解答。 – IInspectable