安装了vcredist_x86.exe,release版本还是不能运行。
发现manifest文件中有一行:
<assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50608.0" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
手工去除后可运行。
问题是RELEASE版本,怎么会引入一个Debug版本的CRT,有什么办法确定其产生的原因或者如何去除么。
我是说每次编译时生成的文件中就不要包含这行,而不是每次编译后手工删除。
------解决方案--------------------------------------------------------
是不是运行库选择错了
带d的是调试,不带就是release
MT是连接到静态库,MD则是连接到DLL
MT就是说生成的可执行文件可以在没有运行库的机器上运行,如果是用MD则生成的可执行文件必需VC运行库——msvcrt.dll msvcrXX.dll等,其中XX代表运行库版本。
在静态库中使用MFC就选择/MT,动态库就选择/MD