Visual Studio Team System 2008问题之:The data file '...\DefFactory.dat' cannot be opened.
解决方法:
用记事本创建一个包含如下内容的 deffactory.dat 文件分别替换掉 setup\deffactory.dat、msdn\setup\deffactory.dat 即可。
[Version]
Signature = "$Windows NT$"
Provider="Microsoft Visual Studio 2008 Professional Edition - ENU"
Version=900.100.00
NullString=Null String
Lang=1033
[Scenario List]
vsscenario.dll
[Scenario Factory Information]
Default Scenario=11E4C8F3-425E-43b9-B689-8BFDF03342E2
======================================
自己第一次安装时, 求成心切, 照做, 果然有效, 但心里奇怪微软怎么会弄错这么简单的事情. 今天用Ultra ISO打开下载的ISO文件, 提取该文件查看, 发现整个ISO光盘(DVD UDF格式)共有3个同名文件:
G:\msdn\Setup\deffactory.dat
G:\Setup\deffactory.dat
G:\TFC\deffactory.dat
都是几百个字节, 小文件, 但内容大小不一. 用Ultra ISO提取出来看竟然全是值为0的文件, 这是怎么回事, 又用 daemon mount原始的ISO文件, 这次直接查看这3个文件的二进制值, 原来是个unicode UTF-16编码的文本文件, 上面给出的方案并没有更改该文件所要传达的信息, 只是该格式变了, 用记事本输入上述内容保存后替换原来文件, 之所以会生效, 是因为我们中国人用的OS多数默认是CP936代码页, 记事本默认以这个格式保存文本文件, 对于上述内容而言, 也就是ASCII格式.
所以这个文件真正的问题是: 文本编码格式应该用ASCII, 这种格式无论如何是可以兼容的.
要想把从微软网站下载到的这个4.7GB的ISO文件刻盘, 还得做一番工作:
1. 第一就是替换 G:\setup\setup.sdb 里面的[Product Key]下面一行的序列号. 这样就等于破解得到了正式版:
PYHYPWXB3BB2CCMV9DX9VDY8T
2. 第二就是搞定上面提到的这3个 deffactory.dat文件.
心里总觉得还是本着这3个文件本身的内容转换编码比较踏实:
其实这3个文件是可以用记事本成功打开的, 打开后内容与上面方案给出的也一样, 如果光看表面会很让人不解: 文件原来的内容就是这样啊, 一个字符一个字符对过去, 一字不差, 为什么网上说用这个内容保存后覆盖原来的文件就可以?
另存文件对话框里要注意先ASCII编码:
注意那个 Unicode, 是弹出保存对话框时的默认, 这意味着这个文件原来的编码方案就是这个, 此时要选ANSI 或 UTF-8, 之所以这两个都可以是因为所谓ANSI真正所用的是当前代码页对应的编码方案, 对我等的情况也就是GB2312, UTF-8自不必说, 这两个编码都是兼容ASCII的, 所以对于上述纯粹由简单英文字符组成的一段用这两个实质上都可以, 不同的是UTF-8编码的话文件的最开头还是允许一个BOM(byte order mark)的, 所以最好用ANSI, 保证纯正的ASCII, 实在不放心可以保存后以 UltraEdit 之类的二进制编码器查看.
3. WinISO 不能打开微软VS2008的这种格式, 虽以ISO后辍以, 实质上是DVD UDF格式, Ultra ISO(8.6.5.2140)可以, 可以可以修改原来的文件, 但是, 保存后的文件不能被 daemon(V 3.20)所识别. 这样刻出来的DVD就有不能被光驱识别的风险. 咋办?
初步确定是daemon版本太旧了, 在vmware里使用4.11.2 lite版的, 可以打开.
-------------------------------------------------------------------------