闲话说完,就此开始。
首先,只需要手工修改两个文件就可以排除该问题。这两个文件都在$VSInstallDir目录下
(以我为例,$VSInstallDir = F:\Visual Studio\)
$VSInstallDir\VC\VCWizards\AppWiz\Generic\Application\html
\2052\AppSettings.htm
$VSInstallDir\VC\VCWizards\AppWiz\Generic\Application\scripts
\2052\default.js
提示:这两个文件修改前最好备份一下。
1.首先打开AppSettings.htm文件,找到"<LABEL FOR="SUPPORT_MFC"
ID="SUPPORT_MFC_LABEL">MFC(<U>M</U>)</LABEL>"行,隔两行输入以下内容:
<!-- this section is added by YUN. -->
<br />
选择你所使用的文件系统:
<INPUT TYPE="radio" CLASS="Radio" checked onPropertyChange=""
NAME="filesystem" ID="FAT32" ACCESSKEY="F" TITLE="FAT32">FAT32(F)</
INPUT>
<INPUT TYPE="radio" CLASS="Radio" onPropertyChange=""
NAME="filesystem" ID="NTFS" ACCESSKEY="N" TITLE="NTFS">NTFS(N)</INPUT>
<!-- end of section -->
保存文件,第一个文件修改完成。
2.接着打开default.js,在找到"var bATL = wizard.FindSymbol("SUPPORT_ATL");",在该行后
输入以下内容:
// this section is added by YUN.
var bFAT32 = wizard.FindSymbol("FAT32");
// end of section
接着往下寻找"config = proj.Object.Configurations.Item("Release");",在该行之前(注意是之
前),输入以下内容:
// this section is added by YUN.
if(bFAT32)
{
var MFTool = config.Tools("VCManifestTool");
MFTool.UseFAT32Workaround = true;
}
// end of section
保存文件,所有修改完成。
接着打开VS2005,新建项目时就会发现新建项目页面的不同。
最后提一下导致这个问题的原因,是由于VS2005采用了一种新的DLL方案,变成了一个EXE还要搭一个manifest文件(一般在嵌入文件里了,
所以看不到,不过也可以不嵌入,这样会生产一个 <程序名>.exe.manifest的文件,没它EXE就转不了)为了这个新功能,微软还配套提供了
一个新工具mt.exe,但是却在FAT32下会出现时间戳问题(NTFS没事),会造成manifest嵌入不到EXE中,这还不算最糟糕。最糟糕的
是默认配置是嵌入的,于是乎就报错找不到MSVCR80D.DLL文件。
该方法还有一个官方的解决方法,"属性->配置属性->清单工具->常规" 选择"使用FAT32解决办法"为是。
但是重复工作是邪恶的,因此特花费半小时记下该技巧,希望能方便他人。