我在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