加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

安装程序 – 始终在次要升级中更新文件(如何)

发布时间:2021-02-23 19:16:59 所属栏目:站长百科 来源:网络整理
导读:我正在使用InstallShield Pro X创建一个安装包.升级正常.但是,即使文件上的创建日期!=修改日期,产品经理也希望升级替换升级中的所有文件. 我看到要做到这一点我需要设置REINSTALLMODE = vamus而不是vomus.但是,我没有看到如何告诉InstallShield我希望它使用

我正在使用InstallShield Pro X创建一个安装包.升级正常.但是,即使文件上的创建日期!=修改日期,产品经理也希望升级替换升级中的所有文件.

我看到要做到这一点我需要设置REINSTALLMODE = vamus而不是vomus.但是,我没有看到如何告诉InstallShield我希望它使用该设置.默认情况下,setup.exe始终将vomus传递给Windows安装程序.

InstallShield项目中有一个名为ReinstallModeText的属性,我将其从omus更改为amus,但似乎没有任何效果.

那么,我如何在安装项目中设置如何在setup.exe检测到运行升级时发送REINSTALLMODE = vamus?谢谢.

更新:尝试将以下内容添加到“发布”部分中的“MSI命令行”值:

REINSTALLMODE = vamus

这没用. Setup.exe没有在命令行上设置REINSTALL = ALL我做了什么.我将其添加到MSI命令行,升级按预期工作.但是,问题不在于,如果它是新安装,那么仍然会设置这些属性并且安装程序失败.

解决方法

不要将REINSTALLMODE设置为amus或vamus(强制覆盖文件).这些设置适用于MSI中的所有组件,因此理论上可以降级系统文件或至少共享文件 – 这通常涉及通过合并模块包含的文件.将 REINSTALLMODE设置为emus通常是安全的(替换版本号较低或相等的文件).如果您尝试在具有 Windows Resource Protection( wikipedia)(Windows Server 2008和Vista以后版本)的较新版本的Windows上覆盖受系统保护的文件,即使这样也会触发文件替换错误.在较旧的Windows版本上,该文件可能会被覆盖,然后通过 Windows File Protection feature从dllcache以正确的版本恢复,前提是该功能有一个美好的一天.有(并且是)用于系统文件检查的关联工具: System File Checker.

如果您对已经编辑过的文件存在问题,则可以使用RemoveFile表来安排在安装期间删除文件(然后重新安装).

真正的解决方案是将%ProgramFiles%中的安装文件夹视为只读,而不是让应用程序保存任何设置或更改任何文件.所有配置文件都应该转到用户配置文件或alluser配置文件,应用程序EXE文件应该负责复制到配置文件位置.

见my answer here.

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读