我们有两个安装盾牌许可证 - 一个用于安装程序的开发人员,另一个用于CI服务器。
通常情况下,另一个开发人员将项目DLL移动到另一个位置,从而破坏了安装程序。
我想知道是否有免费工具,可以让人对ISM文件进行小的修改。我只是在谈论小改动,比如修复DLL路径或完全删除DLL。我不打算“欺骗”许可证。
感谢。
答案 0 :(得分:6)
如果转到项目的属性,则可以选择以XML格式存储ism文件。 (听起来您的项目已经以这种方式配置。)如果是这种情况,XML文件的结构很容易弄清楚。
使用任何文本或XML编辑器,您就可以更新DLL的路径。
我不会建议进行大的更改,但对于小的更改,它不应该是一个问题。
只需搜索DLL的名称即可。它将在XML标记中。您需要更改的源路径应该是该标记上的属性。
我已经使用InstallScript和InstallScript MSI项目完成了这项工作。如果您使用的是纯MSI项目,您的millage可能会有所不同。
答案 1 :(得分:4)
InstallShield项目(.ISM)以XML格式(DTD)或Windows Installer二进制格式存储(实际上MSI只是向后拼写且架构采用预编译格式)因此创建一些自动化来更新这些文件并非不可能没有对InstallShield的单一依赖。
您没有说明您使用的是什么版本的InstallShield,但如果您有权使用任何独立构建许可证,则可以将其放在CI服务器上,并为另一个开发人员释放一个许可证。此外,IDE和SAB都带有一个COM自动化界面,您可以使用它来执行各种有趣的自动化来解决此问题。
但我真的建议你做我做的事。使用Windows Installer XML将安装程序组件抽象为合并模块,然后将合并模块与InstallShield功能关联。这需要一个单片安装程序项目,然后将其分解以支持分布式开发。我甚至编写了一个名为IsWiX的自定义工具,它为您提供类似于InstallShield的体验来维护WiX模块。
答案 2 :(得分:4)
或者你可以使用 Orca 工具看到.msi文件的内容修改.msi数据库的内容(这确实需要做一些小修改),这个工具会随附Installer SDK。
为了更改它,你应该知道基础的MSI表。