首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在次要升级中始终更新文件(如何)

在次要升级中始终更新文件(如何)
EN

Stack Overflow用户
提问于 2009-06-01 17:33:03
回答 4查看 7.6K关注 0票数 3

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

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

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

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

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

REINSTALLMODE=vamus

这不起作用。我这样做时,Setup.exe没有在命令行中设置REINSTALL=ALL。我将其添加到MSI命令行中,升级工作如预期的那样进行。但是,问题不是如果它是一个新的安装,这些属性仍在设置中,安装程序失败。

EN

Stack Overflow用户

发布于 2009-07-03 18:21:05

Don't将REINSTALLMODE设置为amusvamus (强制覆盖文件)。这些设置适用于MSI中的所有组件,因此在理论上可能会降级系统文件或至少是共享文件-这通常涉及通过合并模块包括的文件。通常,将设置为emus (替换版本号低于或等于的文件)是安全的。如果您尝试在具有Windows Resource Protection (wikipedia) (Windows Server2008和Vista更高版本)的较新版本的Windows上覆盖系统保护的文件,即使这样也会触发文件替换错误。在较旧的Windows版本中,文件可能会被覆盖,然后通过Windows File Protection feature从dllcache恢复到正确的版本,前提是该功能运行良好。曾经(现在也是)有一个用于系统文件检查的相关工具:System File Checker

如果文件在编辑后仍需替换,则可以使用RemoveFile表安排在安装期间删除该文件(然后将重新安装)。

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

参见my answer here

票数 3
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/935834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档