我正在构建一个托管 DLL,该 DLL 与适当签名的目录一起捆绑在 MSI 中。MSI 安装失败,报告程序集名称、处理器架构等。使用详细日志记录运行 MSIEXEC,显示如下:
MSI (s) (64:DC) [14:31:33:754]:程序集错误:HRESULT 无法转换为相应的 Win32 错误代码。MSI (s) (64:DC) [14:31:33:785]:注意:1:1935 2:{1ADE2A83-E905-4F35-9DD8-61F512CA50E8} 3:0x800736FD 4:IAssemblyCacheItem 5:提交 6:BLAHBLAH, version="10.0.62601.0",type="win32",processorArchitecture="x86",publicKeyToken="5f523ae7e6e1b389" MSI (s) (64:DC) [14:31:33:785]: 装配错误 (sxs):请查看位于 -207342408ndir\logs\cbs\cbs.log 的基于组件的服务日志以获取更多诊断信息。MSI (s) (64:DC) [14:31:33:785]: 注意: 1: 2205 2: 3: 错误 MSI (s) (64:DC) [14:31:33:785]: 注意: 1:2228 2:3:错误 4:
Message
从Error
哪里选择Error
= 1935 MSI (c) (7C:1C) [14:31:33:785]:字体已创建。Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg Error 1935. 安装程序集 'BLAHBLAH,version="10.0.62601.0",type="win32" 时出错,processorArchitecture="x86",publicKeyToken="5f523ae7e6e1b389"'。有关详细信息,请参阅帮助和支持。HRESULT:0x800736FD。组装接口:IAssemblyCacheItem,功能:Commit,组件:{1ADE2A83-E905-4F35-9DD8-61F512CA50E8} MSI (s) (64:DC) [14:31:48:019]:注:1:2205 2:3:错误 MSI (s) (64:DC) [14:31:48:019]: 注意: 1: 2228 2: 3: 错误 4: SELECTMessage
FROMError
WHEREError
= 1709 MSI (s) (64:DC) [14:31:48:019]:产品:BLAHBLAH v10.0.62601.0 -- 错误 1935。安装程序集 'BLAHBLAH,version="10.0. 62601.0",type="win32",processorArchitecture="x86",publicKeyToken="5f523ae7e6e1b389"'。有关详细信息,请参阅帮助和支持。HRESULT:0x800736FD。组装接口:IAssemblyCacheItem,功能:Commit,组件:{1ADE2A83-E905-4F35-9DD8-61F512CA50E8} 动作结束 14:31:48:InstallFinalize。返回值 3。
查看 Windows/Logs/CBS.log,我可以看到:
2014-10-30 14:31:33,Info CSI 0000000c 执行 1 个操作;1 未锁定/解锁并遵循:安装 (5):标志:0 tlc:[BLAHBLAH,版本 = 10.0.62601.0,pA = PROCESSOR_ARCHITECTURE_INTEL (0),文化中立,VersionScope 中立,PublicKeyToken = {l:8 b:5f523ae7e6e1b389 },类型 = [l:10{5}]"win32",TypeName 中性,PublicKey 中性]) ref:(flgs:00000000 guid:{27dec61e-b43c-4ac8-88db-e209a8242d90} 名称:[l:0]" " ncdata: [l:62{31}]"C:\Windows\system32\msiexec.exe") 指纹:[l:128{64}]"c303b9f117203669bdfdbf904a7f1d45e4767da45615a08eff196fb02d093399" 2014-10-30 14:31:3 错误0000000d@2014/10/30:14:31:33.488 (F) d:\win7sp1_gdr\base\wcp\library\catalog.cpp(263): Error c000038a [Error,Facility=(system),
我看到很多报告指出 HRESULT 0x800736FD 是一个内部错误,并建议运行 Windows 系统更新准备工具。我已经这样做了,但没有什么不同。
这里有一个报告有人遇到同样的问题但没有回应:
我认为托管 DLL 没有任何问题,因为我可以使用 gacutil 手动将其安装到 GAC 中。
这让我发疯。