让我先建立一些背景背景。我已经尽我所能在我的系统上禁用fips。如果它仍然启用,那么它是如此之深,以至于连我这里的系统管理员都无法用他的凭据把它弄出来。
此外,我还添加了:我可以在我的系统上找到的每一个msbuild.exe.config。
话说回来,我开始害怕了:
Exception Type: System.InvalidOperationException
Stack Trace:
at System.Security.Cryptography.MD5CryptoServiceProvider..ctor()
at Microsoft.Tools.WindowsInstallerXml.Common.GenerateIdentifier(String prefix, Boolean fipsCompliant, String[] args)
at Microsoft.Tools.WindowsInstallerXml.Extensions.DirectoryHarvester.HarvestDirectory(String path, String relativePath, Boolean harvestChildren)
at Microsoft.Tools.WindowsInstallerXml.Extensions.DirectoryHarvester.Harvest(String argument)
at Microsoft.Tools.WindowsInstallerXml.Harvester.Harvest(String argument)
at Microsoft.Tools.WindowsInstallerXml.Tools.Heat.Run(String[] args)深入研究代码,我发现类和方法:
Microsoft.Tools.WindowsInstallerXml.Common.GenerateIdentifier
具有将切换到fips兼容算法的参数。问题是,我似乎不知道如何通过heat.exe将这个值输入其中。我尝试过许多命令行配置,但似乎都没有效果。
我不是一个主要的.NET开发人员,所以可能遗漏了一些非常明显的东西。
发布于 2014-04-01 03:29:55
Heat.exe不支持FIPS兼容的ids;它总是使用MD5。但是,如果您想在http://wixtoolset.org/issues/上提交一个特性请求,这是一个合理的特性请求。
发布于 2021-10-05 17:56:24
这是用最近的PR https://github.com/wixtoolset/wix3/pull/540修正的。
要使用它,需要将-fips标志添加到heat.exe命令行调用中。
到目前为止,它在官方版本中是不可用的,但是您可以通过使用开发构建来获得它。只花了8年时间就修好了。
https://stackoverflow.com/questions/22768687
复制相似问题