WiX 3.11.2中heat.exe触发FIPS验证加密算法不兼容报错如何解决?
问题原因
你遇到的报错是两个参数问题共同导致的:
- 参数冲突:你命令中的
-gg参数与FIPS合规要求不兼容。-gg的作用是让heat基于文件内容的MD5哈希生成组件GUID,而MD5不属于FIPS认证的加密算法,哪怕你配置了FIPS相关参数,只要启用-gg就会调用MD5算法触发报错。 - 参数名错误:WiX heat工具的FIPS合规启用参数为
-fips,你使用的-FipsCompliant是无效参数,heat不会识别该配置,无法启用FIPS兼容逻辑。
修复方案
替换冲突的参数即可,修改规则如下:
- 删除
-gg参数,替换为-ag参数:-ag会让heat生成符合FIPS要求的自动GUID,不需要依赖MD5哈希计算 - 将无效的
-FipsCompliant参数替换为-fips,正式启用heat的FIPS兼容模式
修正后命令
$(WixToolPath)heat.exe dir $(SiteStagingFolder) -dr APPINSTALLLOCATION -cg WebSiteContent -var var.WebPackageDir -ag -fips -sfrag -sreg -srd -out "WebSiteContent.wxs"
用上述命令重新执行资源收集即可解决报错,WiX 3.11.2的FIPS兼容能力是正常可用的。
内容的提问来源于stack exchange,提问作者Eugene
相关产品推荐
相关产品推荐

