安装程序 – 始终在次要升级中更新文件(如何)
我正在使用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. (编辑:瑞安网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |