none
升级到VS2008后的问题! RRS feed

  • 问题

  • 我有一个MFC项目,原来在VS2003,VS2005均工作正常.迁移到VS2008以后,编译正常.但是运行时却总是出现:"没有找到MSVCR90.dll...."。事实上,我的VS2008是安装成功,并且当前项目是DEBUG编译版本。

    2008年4月10日 8:20

全部回复

  • 谢谢大家的帮助!

    不过这并不是由于MSVCR90.dll没有安装或者路径不正确的原因.我查了一下网上,有人在升级到VS2005也碰到了类似问题。不清楚是什么原因引起的,但确实有解决办法。我按照网上VS2005的方法,依葫芦画瓢加了一句代码到程序中,于是问题解决了:

     

    #pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='X86' publicKeyToken='1fc8b3b9a1e18e3b' language='*'\"")

     

    但我确实没有搞懂为什么,因为我的Project是DEBUG模式,并且所有依赖的DLL都是DEBUG模式,为什么需要这个Release运行库?

    2008年4月13日 12:16
  • 这个是FAT32文件系统分区的缘故,一般有如下症状;
    第一次Build 的时候从不出问题,在以后重新Build 的时候,可能随机地出现问题。可能你Build间隔的时间足够长,也不会出问题。
    微软也知道这个bug,但是看来没有打算完全解决它的意向,倒是在项目属性中有个选项,让你在FAT32 下也能正常工作。具体如何解决,是这样做的:

    如果是把项目放在FAT32分区,那么这样操作:
    英文版Stick out tongueroject Properties -> Manifest Tool-> Use FAT32 Work-around -->Yes
    中文版:项目-->项目属性-->配置属性-->清单工具-->使用FAT32解决方法-->是
    然后clean下,然后Rebuild即可正常运行,但是这样就会很麻烦,每次建个项目,都要设置它的项目属性

    最好的解决办法是,将你的项目放在NTFS分区下,这样才可以正常的工作.
    如果可以,提醒用户,直接将Visual Studio 2008装在你的NTFS分区下把,这样就不会有限制了,你可以将你的项目创建在任何地方了,而也不会出现上面所说的错误

     

    2008年8月7日 9:29