恢复 ConCore 的 DataStore

下午需要编译一个 Windows Mobile 上的工程,原来好好的工程文件,突然打不开了,VS2005 报告说,在分析 XML(即工程文件) 时遇到了“灾难性错误”。用文本工具打开工程文件,转到报错的行和列上,没有发现有什么反常的地方,以十六进制的方式查看,也可以看出不是编码方面的问题。把出错的那个标签删除后重新打开,仍然报错,仍然是相同的标签,看来是由于某种原因,导致集成环境失去了对此标签的识别能力。全部删除后,打开正常。

可是编译后试图运行时,却怎么也无法启动 Windows Mobile 的模拟器。于是怀疑模拟器出了问题,到模拟器程序所在路径下直接运行模拟器管理器,果然,列表里一个映像也找不到了,报告 0x80070002 的错误。用 Error Lookup 可知此错误的含义为“系统找不到指定的文件”。于是想起上次为了能够在绿色环境中正常运行模拟器而作的试验来,搞不好我上次把某个本应该复制的文件剪切走了也未可知。把 FileMon 打开,严密监视其输出,终于发现了一个可疑的条目:“15:21:16 dvcemumanager.e:3152 IRP_MJ_CREATE C:\Documents and Settings\UserName\Local Settings\Application Data\Microsoft\CoreCon\1.0\notification\ FILE NOT FOUND Attributes: Any Options: Open Directory”,同时也回想起上次确实对此 notification 文件夹进行过操作,现在此文件夹却不见了。到清淡男的机器上去看,果然有此路径,而更美妙的事情是,下面只有一个名为 datastore.xsl 的文件,大小仅 1 字节。

我老人家照猫画虎,创建了个 notification 的文件夹,又在下面创建了一个 0 字节(个人认为,既然 1 个字节能工作,恐怕 0 字节也不碍事)的 datastore.xsl 文件。

运行模拟器管理器,正常!再运行 VS2005 进行调试,也一切正常!

呵呵,实在不明白,微软竟然连这点容错都没有作,要是哪次异常关机导致此文件丢失的话,说不定用户就得抓狂了……

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注