【问题标题】:Can ILMerge be used on DLLs in InstallShield CustomActions?ILMerge 能否用于 InstallShield CustomActions 中的 DLL?
【发布时间】:2012-07-26 08:41:54
【问题描述】:

我创建了一个依赖于 DOTNETZIP“Ionic.Zip.dll”的 C# dll。此自定义程序集将用作 InstallShield 自定义操作并输入到二进制表中。执行自定义操作时,我在 MSI 日志中收到以下错误信息。

行动 11:59:25:启动 CTSDBExtract2。 MSI (s) (20:50) [11:59:25:513]:执行操作:CustomActionSchedule(Action=LaunchCTSDBExtract2,ActionType=1089,Source=BinaryData,Target=m1,) MSI (s) (20:08) [11:59:25:607]:调用远程自定义操作。 DLL:C:\Windows\Installer\MSI5F58.tmp,入口点:m1 InstallShield:尝试通过 CLR 4 API 加载... InstallShield:获取元主机... InstallShield:枚举可用的运行时... InstallShield:最高可用运行时间:v4.0.30319 InstallShield:尝试使用最高运行时间... InstallShield:使用最高版本的运行时... InstallShield:CustomActionData 未提供延迟操作请求的属性 MsiHiddenProperties InstallShield:从资源 4097 加载程序集 CTSDBExtract_Merged InstallShield:无法加载托管自定义操作程序集 CTSDBExtract_Merged:找不到资源 4096.4097

有没有人见过这个,和/或知道这意味着什么以及如何解决它?如果我遗漏了您不确定的任何内容,请告诉我,我很乐意澄清。

谢谢

【问题讨论】:

  • 您是否将 ionic.zip.dll 包含在将与自定义操作 dll 一起部署的文件中?
  • 您对 ilmerge 的具体问题是什么?您是合并这两个 DLL 并遇到此问题,还是您认为使用 ilmerge 会解决此问题?
  • 我已将 Ionic.zip.dll 与我的自定义程序集合并,当它在 InstallShield 中执行时出现上述错误。不幸的是,我无法找到有关如何解决此问题的任何信息。我不确定 ILMerge 是否导致 Installshield 出现问题。
  • 我不确定 ILMerge 是否也会导致此问题,如果您将 ionic.zip.dll 添加到安装中,以便将其放置在与您的自定义操作相同的目录中并且不使用 ILMerge ,问题消失了吗?或者,将 ionic.zip.dll 复制到 windows\system32 并尝试在没有 ilmerged dll 的情况下安装,问题是否仍然存在?

标签: c# installshield custom-action dotnetzip


【解决方案1】:

Google DTF 管理的自定义操作。这是一个来自 Microsoft 的开源项目,它将托管的自定义操作封装为非托管的,并且可以与 InstallShield 一起使用。它还内置了压缩和自解压程序集引用和内容文件的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2021-03-15
    • 1970-01-01
    相关资源
    最近更新 更多