InstallShield 文件序列号
我将文件添加到现有的 InstallShield MSI 项目,构建 MSI,然后从中创建 MSP 以应用于现有安装。
问题是,当我将新文件添加到 MSI 项目时,序列号不会增量设置。我进入直接编辑器,编辑序列号,使它们从旧序列号停止的地方开始,但是当我构建项目时,我输入的序列号将被忽略。如果这样的序列号不同,将会导致MSP无法正确安装。
有没有办法修复被 InstallShield 覆盖的序列号?如果我不向项目添加任何新文件,现有文件的序列号将保持不变。就好像我添加的新文件正在“中间”安装。
有什么想法吗?
谢谢
I'm adding files to an existing InstallShield MSI project, building the MSI, and then creating an MSP from it to apply to existing installations.
Problem is, when I add new files to the MSI project, the sequence numbers aren't set incrementally. I went into the Direct Editor, and edited the sequence numbers to make them start where the old ones stopped, but when I build the project, the sequence numbers I entered are ignored. If the sequence numbers are different like this, it will cause the MSP to not install correctly.
Is there a way to fix the sequence numbers getting overriden by InstallShield? If I don't add any new files to the project, the sequence numbers of the existing files stay the same. It's as if the new files I'm adding are getting installed "in the middle".
Any thoughts?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
可能有一些问题...
如果我没记错的话,我认为您需要在设置用于指向以前的 MSI 包的属性后构建新的 MSI。这将强制新包使用与旧包相同的文件 ID。
如果这不能解决问题,则可能与您将新文件添加到包中的方式(您有外部 CAB 文件吗?)和构建“二进制文件”的补丁构建选项的组合有关修补
Could be a few issues...
If I remember correctly, I think you need to build the new MSI after setting the property used to point to the previous MSI package. That will force the new package to use the same file IDs as the old package.
If that doesn't fix the problem, it probably has something to do with a combination of how you're adding the new files to the package (do you have external CAB files?) and the patch build option to build a 'binary' patch
您可以尝试将项目保存为 XML 格式 - 存在一些奇怪的情况这可以解决的内部“无序”数据库顺序。以这种方式第一次保存、关闭和重新加载后,如果您愿意,可以转换回二进制项目。如果您在添加新文件后尝试执行此操作,请确保对文件表的 XML 中的记录重新排序,或在尝试此操作之前将其删除。
You might try saving the project in XML format - there are some oddities to the internal "unordered" database order that this can resolve. After the first save, close, and reload this way, you can convert back to a binary project if you like. If you attempt this after adding the new files, make sure to reorder the records in the XML of the File table, or delete them before attempting this.
这些序号不需要按顺序设置。事实上,在大多数情况下,我倾向于在 Windows 安装程序中对不同的序列号使用 10 的增量,以确保我可以重新排序而不更改所有项目的所有数字。不要弄乱这些数字,让 Installshield 控制它们即可。
user707082 是正确的,您应该指向 MSI 的先前版本,以允许 Installshield 为新设置同步 GUI,但这通常适用于动态生成的组件 如果您通过手动覆盖违反了 Windows Installer 组件规则,则修补程序仍可能会失败。
为了让补丁发挥作用,我遵循一些经验法则:
These sequence numbers do not need to be set in order. In fact in most cases I tend to use increments of 10 for different sequence numbers in windows installer in order to make sure I can resequence without changing all numbers for all items. Don't mess with these numbers, just let Installshield control them.
user707082 is correct that you should point to the previous build of the MSI to allow Installshield to sync guids for the new setup, but this is generally for dynamically generated components and the patch might still fail if you violate the Windows Installer component rules by overriding manually.
For patches to work I follow some rules of thumb: