问题所在:由于vs 2005 采用了一种新的DLL方案,debug成一个exe还要配有一个manifest文件(一般在嵌入文件里了,所以看不到,不过也可以不嵌入,这样会生产一个<程序名>.exe.manifest的文件,没它exe自己就转不了了:)这是个新功能,微软弄了个新工具(mt.exe),结果不好用,好像是fat32下时间戳有问题(在ntfs下这个问题就没有了),搞得manifest有时嵌入不到exe中(默认配置是嵌入的,所以就报错找不到dll了。而用release就不会出现这个问题。解决方法如下:
解决方案(3个):
1. 微软对于这个问题应该也有处理,不过感觉不是很人性化。在“属性->配置属性->清单工具->常规“下有一个”使用FAT32解决办法,把它选成是,就可以了。(注意:一定要先配置这个选项,然后再编译工程,要不然还是不好用:)
2. 找到你的工程的文件夹,如(myproject),找到其下的myproject/myproject/Debug/ myproject.rec,把它删掉(删掉整个Debug目录也可以),重新编译,搞定!
3.其次之后我觉得这个问题主要出现在 fat32上 所以呢。而第一种又不是很人性化。所以我就想 在工程建成时候 就直接讲那个配置属性的 使用fat32设置成true 就成。于是找到vs 2005 vc的配置文件。。
1) 首先找到你的vs.net安装目录(如我的是D:/Program Files/Microsoft Visual Studio 8),定位到Microsoft Visual Studio 8/VC/VCWizards/AppWiz/Generic/Application/scripts/文件夹,里面只有一个文件default.js 打开修改它:(首先备份哦)
找到:
function AddSpecificConfig(proj, strProjectName, bEmptyProject, strAppType)
{
try
{
var bMFC = wizard.FindSymbol("SUPPORT_MFC");
var bATL = wizard.FindSymbol("SUPPORT_ATL");
var config = proj.Object.Configurations("Debug");
....................................................
找到这个位置之后 往这加上代码:
var MFTool = config.Tools("VCManifestTool");
MFTool.UseFAT32Workaround = true;
之后保存 重新开启vs 2005 新建 项目之后看看 问题就消失了。。