开发者

Is there a free tool to modify InstallShield ism files?

We have two install shield licenses - one for the developer of the installer and the other - for the CI server.

There is often a situation when another d开发者_开发问答eveloper moves a project DLL to another location, thus breaking the installer.

I was wondering if there was a free tool, which would allow one to make small modifications to the ISM files. I am talking about small changes only, like fixing the DLL path or removing the DLL entirely. It is not my intention to "cheat" the license.

Thanks.


If you go to the properties of the project, you can choose to store the ism file in an XML format. (It sounds like your project is already configured this way.) If this is the case, the structure of the XML file is easy enough to figure out.

Using any text or XML editor, you would then be able to update the path to the DLL.

I wouldn't suggest it for making large changes, but for small changes it shouldn't be a problem.

Just search for the name of the DLL. It will be in a XML tag. The source path that you need to change should be an attribute on that tag.

I've done this with both InstallScript and InstallScript MSI projects. If you are using a pure MSI project, your millage may vary.


InstallShield projects (.ISM) are stored in XML format ( DTD ) or Windows Installer Binary Format ( really an MSI just spelled backwards and the schema is in a precompiled format ) so it's not impossible to create some automation to update these files without having a single dependency on InstallShield.

You don't say what version or edition of InstallShield you are using but if you are entitled to any Stand Alone Build Licenses you could put that on the CI server and free up one license for another developer. Also the IDE and SAB come with a COM automation interface that you could use to do all kinds of interesting automation to solve this problem.

But I'd really suggest that you do what I do. Use Windows Installer XML to abstract your installers components into merge modules and then associate the merge modules to your InstallShield features. This takes a monolithic installer project and turns breaks it out to support distributed devlopment. I even wrote a custom tool called IsWiX that gives you an InstallShield like experience to maintain the WiX modules.


Or you can see the contents of the .msi file using Orca tool modify the contents of the .msi database (which is really required to do minor modifications), this tool will come along with Installer SDK.

In order to change it you should know underlying MSI tables.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜