天天看点

没有找到MSVCP90D.dll因此这个应用程序未能启动

解决方案很多,列举如下:

    1.     微软官方:在项目的“属性|配置属性|清单工具|常规”中的“使用FAT32解决办法”选择“是”(默认为“否”),重新生成项目即可解决问题。该方法是唯一真正针对问题所在而提出的解决方法,使清单工具可以正确更新。(此方法是官方解决方法,也比较方便,推荐,注意:一定要先配置这个选项,然后再编译工程,要不然还是不好用:)

    2.     找到你的工程的文件夹,如(myproject),找到其下的myproject/myproject/Debug/ myproject.rec,把它删掉(删掉整个Debug目录也可以),重新编译!

    3. 由于这是在链接动态运行库出现的问题,所以你可以选择代码生成的连接方式为/MTd而非/MDd,不用这些DLL文件从而避免问题的出现。该方法有一个很显然的缺点:适用范围有限,并且也不是我等提倡的解决问题的方式,不推荐该方法。

    4. 既然跟FAT32系统有关,那么我们可以选择在NTFS文件系统中开发从而避免该问题,此方法同上,也是采用的回避问题的方式,不为我等提倡。

开始-运行-cmd-输入 convert c:/FS:NTFS

同理 D盘 convert d:/FS:NTFS

    5. 既然问题是在更新嵌入的清单文件时发生的,由于FAT32的原因而未能更新嵌入的清单文件,于是我们有如下两种解决方法:

    (1)不启用增量链接。在项目的“属性|配置属性|链接器|常规”中的“启用增量链接”选择“否”。此方法阻断了问题产生的源头,其每次生成exe文件时都直接嵌入清单文件,而不是默认的根据时戳而决定是否更新清单文件。

    (2)不嵌入清单文件。在项目的“属性|配置属性|清单工具|输入和输出”中的“嵌入清单”选择“否”,从而在生成exe文件时附随生成一个清单文件(默认情况下,其文件名为exe文件的全名加上“.manifest”),避免了嵌入清单文件可能失败的问题。在程序运行时,会用到该清单文件。显然,这种方式使可执行程序产生了更多的外部依赖,不推荐。

      6.还有一个非常好的、一劳永逸的方法,不过使用起来要小心谨慎。这个方案可以直接在应用向导中配置,符合高级人机界面要求:

       1)     首先找到你的vs.net安装目录(如我的是E:/Program Files/Microsoft Visual Studio 8),定位到Microsoft Visual Studio 8/VC/VCWizards/AppWiz/Generic/Application文件夹,备份这个Application文件夹,不然一会你自己改咂了我可不管啊:)。

       2)     打开html/2052,看到两个文件了吧,就那个AppSettings.htm了,这个管着你的那个配置向导的界面,用UE等编辑工具打开,在266行“                 </SPAN>”后回车,然后插入一下内容:

<!-- this (hua)section is added by HUA. -->

                     <br><br><br><br><br>

                 <span class="itemTextTop" id="FILE_SYSTEM_SPAN" title="">选择你所使用的文件系统:

                        <P CLASS="Spacer"> </P>

                         <INPUT TYPE="radio" CLASS="Radio" checked onPropertyChange="" NAME="filesystem" ID="FAT32" ACCESSKEY="F" TITLE="FAT32">

                         <DIV CLASS="itemTextRadioB" ID="FAT32_DIV" TITLE="FAT32">

                         <LABEL FOR="FAT32" ID="FAT32_LABEL">FAT32(<U>F</U>)</LABEL>