我在Windows 8.1(Enterprise / Pro)上运行makecat.exe时遇到问题。我正在尝试为Windows疑难解答平台.diagcab生成.cat文件,并在下面收到错误。
打开:.. \ DiagPackage.cdf
attribute: OSAttr
失败:找不到成员。上一个错误:0x00000000
失败0x00000000(0)
今年1月运行Windows 8.1对我来说无疑是有用的。但是现在甚至使用我以前用来生成.cat文件的相同的.cdf文件(和脚本)也没有明显的原因返回此错误。结果是没有文件哈希的.cat文件。
.cdf文件的内容如下所示。还注意到根据sdk文档在文件末尾有一个额外的回车符/换行符。
[CatalogHeader]
Name=DiagPackage.cat
PublicVersion=0x0000001
EncodingType=0x00010001
CATATTR1=0x10010001:OSAttr:2:6.1
[CatalogFiles]
<hash>DiagPackage.diagpkg=DiagPackage.diagpkg
<hash>DiagPackage.diagpkgATTR1=0x10010001:Filename:DiagPackage.diagpkg
<hash>D_Main.ps1=D_Main.ps1
<hash>D_Main.ps1ATTR1=0x10010001:Filename:D_Main.ps1
<hash>R_ECP.Diagnostic.UserUpdate.ps1=R_ECP.Diagnostic.UserUpdate.ps1
<hash>R_ECP.Diagnostic.UserUpdate.ps1ATTR1=0x10010001:Filename:R_ECP.Diagnostic.UserUpdate.ps1
我尝试过最新的SDK for 8.1(最后更新时间为2014年5月13日)的makecat.exe和存档中的版本(最后更新时间为2014年4月2日),但这两者都没有运气。
有没有人有这个问题并解决了它?
答案 0 :(得分:0)
我无法解决Windows 8.1 SDK的问题。
但是我通过以下方式解决了这个问题:
makecat.exe的版本是6.1.7600.16385,适用于Windows 8.1 Update 1(x64)。
答案 1 :(得分:0)
makecat 8.1也有类似的问题。我可以通过更改cdf文件的编码来解决它。显然,makecat在读取utf-8时遇到问题,并且更喜欢Windows-1252编码(Visual Studio中的默认设置)