InstallShield文件序列号

| 我正在将文件添加到现有的InstallShield MSI项目中,构建MSI,然后从中创建MSP以应用于现有安装。 问题是,当我将新文件添加到MSI项目时,序列号没有递增设置。我进入了直接编辑器,并编辑了序列号,使它们从旧序列停止的地方开始,但是当我构建项目时,我输入的序列号将被忽略。如果序列号不同,将导致MSP无法正确安装。 有没有办法解决被InstallShield覆盖的序列号?如果我不向项目添加任何新文件,则现有文件的序列号保持不变。好像我要添加的新文件安装在“中间”。 有什么想法吗? 谢谢     
已邀请:
可能是几个问题... 如果我没记错的话,我认为您需要在设置用于指向以前的MSI包的属性后,再构建新的MSI。这将强制新软件包使用与旧软件包相同的文件ID。 如果这样不能解决问题,则可能与您如何将新文件添加到程序包(您是否有外部CAB文件?)和修补程序构建选项来构建\ 'binary \'补丁     
您可以尝试以XML格式保存项目-可以解决的内部“无序”数据库顺序有些奇怪。第一次保存,关闭并重新加载后,可以根据需要转换回二进制项目。如果在添加新文件后尝试执行此操作,请确保在“文件”表的XML中对记录重新排序,或者在尝试执行此操作之前将其删除。     
无需按顺序设置这些序列号。实际上,在大多数情况下,我倾向于在Windows Installer中对不同的序列号使用10的增量,以确保无需更改所有项目的所有序列号就可以重新排序。不要弄乱这些数字,只需让Installshield控制它们即可。 user707082是正确的,您应该指向MSI的先前版本,以允许Installshield同步新设置的向导,但这通常适用于动态生成的组件,如果您通过手动覆盖违反Windows Installer组件规则,则修补程序仍可能会失败。 为了使补丁正常工作,我遵循一些经验法则: 每个文件一个组件 更改的绝对文件路径意味着新的组件GUID 绝对不要为不会更改绝对安装路径的文件更改组件GUID 不要使用Installshield的动态文件链接 遵循所有组件创建规则(有很多规则,请参见SDK) 仅使用完整文件补丁,不使用二进制补丁 再加上一些我现在不记得的东西。这不是我的开发人员系统     

要回复问题请先登录注册