2011-03-03 32 views
3

我有一个纯粹的InstallScript项目,该项目原来是有问题的,由于this issue。通过添加一些在安装新文件之前清除特定目录的InstallScript来临时解决这个问题,这并不理想。但是,this series of forum posts表示InstallScript MSI项目或Basic MSI项目将极大地简化在升级时删除动态链接文件。可行性从安装InstallScript项目转换为基本MSI

搜索的Flexara论坛,我找了很多帖子毁谤安装InstallScript MSI项目类型,所以我期待在基本MSI。显然Flexara有一款名为Repackager的产品,可以使用convert InstallScript projects to Basic MSI。不过,它只有IS Premier或Admin Studio,这意味着我们必须花一些钱。在我走下这条路之前,我需要一些迹象表明这很可能奏效。

  • 使用Repackager工具从InstallScript转换为Basic MSI时可能会丢失任何功能吗?我们的脚本中有相当一部分逻辑,包括诸如this之类的内容,它们跨越安装的几个步骤传递信息。我们还使用了几个InstallShield NT服务对象,我相信我必须从IS2010单独安装旧对象。 Repackager被认为无法处理InstallScript项目的任何方面?
  • 如果再打包不会神奇地转换的项目,有一个引导的地方,我可以跟着做手工转换?我发现InstallShield文档和论坛相当严重缺乏。
  • 有什么方法所得到的基本MSI安装包就可以执行升级安装在安装了一个老(纯的InstallScript)版本的系统?这真的是一个奖金。在这一点上,我期待我们只会被迫做一个完整的卸载/重新安装。

回答

3

克里斯托弗提到,我不会推荐repackager解决方案出于同样的原因。

你的InstallScript项目和新的基本MSI项目之间的很好的桥梁。将创建一个使用的InstallScript自定义操作一个新的基本MSI项目。采用这种方法,MSI引擎将管理安装的非专有方面,并且可以重复使用旧版InstallScript代码来管理安装的专有方面。

这给你两全其美 - 你有完整的控逆变过(因为它不是由再打包自动生成),加上节省时间,因为你不必重新实现你的InstallScript功能强大的基本MSI软件包从头开始。

+1

但是,我会提醒的是,确保您带来的旧版installscript代码不会将您的MSI变成易碎的野兽。国际海事组织认为,InstallScript没有任何内在的错误(其他人会强烈反对我),当它被滥用和滥用时,问题就来了。 –

3

重新打包者至多只能捕获安装业务规则的一个实例。你不能简单地'转换'你的安装,而是你重新设计它。理想情况下,您将有一位MSI专家审查您的InstallScript项目,并确定可通过重构MSI最佳做法而消除的部分,然后重写其余部分以适合MSI的序列表。

如果您的旧卸载行为良好,您可以编写一个自定义操作将其删除。如果您的新产品进入新的安装目录,这是最容易的,因为您可以消除潜在的文件成本问题。如果这是不可能的和/或您的旧安装没有正确的行为卸载,那么这将变得更加复杂。

它也可以是更复杂,如果你有,你想从旧的安装背景下新的上下文坚持配置数据。

这些年来我做了很多这样的事情,虽然它可能非常具有挑战性,但它也可以带来回报,因为您可以一路清理大量的垃圾。

相关问题