【问题标题】:Makecat error: no members foundMakecat 错误:未找到成员
【发布时间】:2014-08-02 16:34:24
【问题描述】:

我在 Windows 8.1(企业版/专业版)上运行 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 日)和存档中的版本(最后更新于 2014 年 4 月 2 日)中的 makecat.exe,但都没有运气。

有人遇到过这个问题并解决了吗?

【问题讨论】:

    标签: windows winapi windows-8.1


    【解决方案1】:

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

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

    makecat.exe 的版本是 6.1.7600.16385,它适用于 Windows 8.1 Update 1 (x64)。

    【讨论】:

      【解决方案2】:

      makecat 8.1 也有类似的问题。我能够通过更改 cdf 文件的编码来解决它。显然 makecat 在读取 utf-8 时遇到问题,并且更喜欢 Windows-1252 编码(Visual Studio 中的默认值)

      【讨论】:

        猜你喜欢
        • 2012-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-02
        • 1970-01-01
        • 1970-01-01
        • 2022-07-10
        • 2021-08-27
        相关资源
        最近更新 更多