【问题标题】:patch uninstall not working properly developed using InstallShield使用 InstallShield 开发的补丁程序卸载无法正常工作
【发布时间】:2014-09-16 20:59:42
【问题描述】:

我使用 Installshield 为我的产品创建了一个补丁。当我应用补丁时,产品文件会成功更新。但是,当尝试卸载补丁时,它会成功卸载或删除目标 m/c 中新添加到补丁的 dll,但不知何故,由于补丁而被修改的某些 dll 或 exe 在卸载补丁后不会恢复。

当我看到某些 dll 的版本时,日期和时间是应用补丁的日期,并且在卸载补丁后版本仍然是新版本。这意味着 dll 不会被还原。

有人可以帮助理解为什么我的一些 dll 在卸载补丁后没有恢复。我已正确遵守补丁卸载规则。

【问题讨论】:

  • 这是题外话。 Stack Overflow 是关于编程的问答资源,而不是一般的技术帮助网站。
  • 您是否查看过补丁卸载的详细日志以获取提示?您提到检查时间戳而不是版本信息;你的 DLL 没有版本化吗?
  • 嗨迈克尔我检查了详细的配置和重新配置成功完成以删除补丁。是的,dll 是版本化的,但不会恢复 bck,一些从日志 MSI (s) (0C:BC) [10:31:05:707] 中提取:组件:some.DLL;安装:本地;请求:空;行动:空。 MSI (s) (0C:BC) [10:31:06:657]: File = some: Final State = Overwrite
  • MSI (s) (0C:BC) [10:31:12:685]:Windows Installer 删除了更新。产品名称:YY。产品版本:1.0.111.2403。产品语言:1033。制造商:LLL Inc.。更新名称:Test。删除成功或错误状态:0. MSI (s) (0C:BC) [10:31:12:686]:注:1: 1728 MSI (s) (0C:BC) [10:31:12:686] : 产品: YYY-- 配置成功。
  • 所以我没有得到如何进行进一步调查..

标签: installation windows-installer installshield msi-patch


【解决方案1】:

打开命令提示符(以管理员身份),然后运行命令

sfc /scannow

也许这会有所帮助

【讨论】:

  • 嗨...我成功运行了命令,它说“Windows 资源保护没有发现任何完整性问题”.. 这意味着我的安装程序补丁有问题?
  • @preang 是的,看起来如此...尝试另一个安装程序
  • 除非有问题的 DLL 受 Windows 保护(不太可能在自定义安装中对其进行修补),否则sfc /scannow 不太可能提供帮助。
【解决方案2】:

您好,我在卸载补丁后得到了解决方案,为什么某些组件(dll)没有恢复。那是因为我的项目中有自定义操作导致了问题,即在卸载补丁时不允许重新安装我的组件(dll)的功能。

日志显示为 MSI (s) (1C:EC) [17:14:50:054]:特征:ALLDLLS;安装:本地;请求:本地;行动:本地 在请求和操作声明中应该重新安装它而不是本地。所以我修改了自定义动作,结果是

MSI (s) (1C:EC) [17:14:50:054]:功能:ALLDLLS;安装:本地;要求:重新安装;行动:重新安装

这反过来也恢复了那些没有被恢复的组件或 dll。

【讨论】:

    猜你喜欢
    • 2014-06-29
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    相关资源
    最近更新 更多