我的方案如下:
我有一个客户端 - 服务器应用程序。客户端通过MSI包部署。我想自定义MSI以包含一些特定于每个安装的细节(即我需要将服务器的地址写入我的一个配置文件中;每个安装中的地址都不同)。
我正在考虑以下替代方案:
解压缩MSI,解压缩CAB,修改文件,压缩CAB,创建MSI(如本link中所述)。问题是我需要自动完成(没有GUI,没有用户干预)
将地址作为参数传递给MSI。然后在安装过程中读取此参数并修改文件。这是不太理想的,因为在客户端上创建配置文件是我目前没有做的事情,这意味着向客户端添加另一个组件。
在服务器上从头开始创建MSI。
如果有人有类似的经历,我会很感激反馈。
答案 0 :(得分:1)
您使用什么来编写安装程序?我知道WiX和InstallShield都有自定义操作,旨在使用XPath语句更新XML文件。你可以做像
这样的事情对于Foo.Exe.Config // appSettings / Add [@ key =“Server”]设置值=“[SERVERNAMEPROPERTY]”
然后您可以编写一个自定义对话框,询问用户设置属性的值。您还可以使用以下命令执行静默安装:
msiexec / i foo.msi / qn SERVERNAMEPROPERTY = MyServerName