_isconfig.xml中supportedRuntime的值在ManagedInstall期间导致错误1001

时间:2016-04-25 19:06:13

标签: windows-installer installshield installutil

上个月(2016年3月)我正在使用.NET Installer Class属性设置为Yes的组件构建InstallShield 2015项目,一切似乎都运行良好。本月我在运行相同安装时突然开始收到错误1001。看到错误来自此.NET Installer Class组件,我决定关闭.NET Installer Class属性作为测试。确实可以解决问题。但我们有另一个构建系统,我们可以在其中构建完全相同的代码,并且一切仍然有效,这表明存在环境问题。

经过一些额外的研究后,我发现文件_isconfig.xml显示了两个系统之间supportedRuntime version属性的不同值,我认为这是一个密切相关的指标。问题。其他研究表明,此版本可能来自InstallUtilLib.dll,它确实与我在_isconfig.xml上看到的两个系统上的版本相匹配。安装适用于<supportedRuntime version="v4.0.30319"/>,并且失败并显示<supportedRuntime version="v4.6.1055"/>。顺便说一下,较新的InstallUtilLib.dll的日期是2015-11-05,所以我想这个问题理论上可能是自那个日期以来任何更新的结果。

我看到我的系统最近安装了一些.NET Framework更新,但是当我在Google上搜索影响InstallUtilLib.dll的Microsoft更新时,我却空手而归。那么如何确定这个问题以确定原因和/或解决方案呢?

MSI日志报告错误如下:

MSI (s) (58:14) [14:17:27:958]: Executing op: CustomActionSchedule(Action=_1A0C0EC89595D04ACFD3852EF29B12BD.install,ActionType=3073,Source=BinaryData,Target=ManagedInstall,CustomActionData=/installtype=notransaction /action=install /LogFile= "M:\MfgSys\System\FourthShift.SDKAdministrator.dll" "C:\Users\bmarty\AppData\Local\Temp\{C449BDEA-AA73-4FDE-A6AF-9116E1D7DEBB}\_isconfig.xml")
MSI (s) (58:20) [14:17:27:973]: Invoking remote custom action. DLL: C:\windows\Installer\MSI7282.tmp, Entrypoint: ManagedInstall
Error 1001.

1 个答案:

答案 0 :(得分:1)

您已正确诊断出问题的直接原因。其余部分是由于InstallShield使用了它所指向的框架的错误版本。 (我相信旧版本它错误地使用了文件版本而不是CLR版本。)以下是我看到它们的选项:

  • 停止使用安装程序类。它们非常脆弱,难以调试,并且可能无法正确编写。另一方面,如果你习惯了它们,它们会非常方便和舒适。
  • 避免在构建计算机上安装最新版本的.NET。或者将相关文件从4.0框架复制到新文件夹,然后指向InstallShield。 (使用Process Monitor之类的工具来确定完整集。)
  • 添加调整_isconfig.xml值的后处理步骤。
  • 使用正确检索版本的InstallShield版本。例如,如果您至少没有安装InstallShield 2015的Service Pack,请尝试一下。 (我认为我们发布了针对该问题的解决方案,尽管有一些迹象表明它只是部分的。我们将在下一个版本中提供更好的解决方案,或者如果我们的支持团队得到足够的请求,我们会更快。)