Makecat错误:找不到成员

时间:2014-06-12 11:10:54

标签: windows winapi windows-8.1

我在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日),但这两者都没有运气。

有没有人有这个问题并解决了它?

2 个答案:

答案 0 :(得分:0)

我无法解决Windows 8.1 SDK的问题。

但是我通过以下方式解决了这个问题:

  • 使用“{3}}
  • 提供的ISO版本使用”Microsoft Windows SDK for Windows 7和.NET Framework 4“
  • 安装WinSDKTools_x86.msi

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中的默认设置)