安装程序 – 始终在次要升级中更新文件(如何)
我正在使用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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – 如何使用powershell将监视器超时设置为“never”
- 从多个远程Windows服务器获取磁盘空间信息
- .net – 32位和64位MS Windows上Int64和Int32之间的实际性能
- .net – 全球化现有的Windows窗体应用程序?
- windows-server-2008-r2 – 服务器突然无法建立新连接;看似
- office365 – Microsoft Graph:在一个请求中列出所有用户及
- 如何在Window窗体中使用UserControl编程C#
- .net – Windows Phone 7:不支持现有库?
- MSI中的背景图像应该是多大?
- windows下进程间通信方法
- 使用Windows.Data.Json的C#VS2017 IStringable U
- 在Go中,如何自动将循环索引强制转换为uint?
- windows – Git如何从UNC路径获取更改?
- windows-7 – 为什么我的登录脚本不会映射Window
- active-directory – 阻止EXE在XP域环境中执行
- Windows – 桌面上的绘图线在Win 7上非常慢
- windows-server-2008 – Exchange 2010 DAG自动故
- windows配置cider和clojure clj
- .NET Core,Windows Nano Server和System.Managem
- windows-7 – 在Windows 7 -32位操作系统上安装M