2011-03-29 196 views
0

我已经为我们的应用程序安装。但它是exe文件。它是在很多年前创建的。当然应用程序已经更新。我们使用了一个bat文件来注册新的dll文件并安装我们的服务(windows)。但我们想通过安装程序完成所有这些工作,而不是使用bat-file。我们选择了一个wix技术。我读了约<Patch>节点,但使用它,我需要从以前的版本msi ..我认为做一个简单的安装程序,这将停止服务,复制和注册DLL在安装的应用程序的目录中,安装服务。但我不知道它会覆盖文件没有任何问题?wix - 安装程序或补丁安装程序

+0

您可以尝试为安装之前卸载旧EXE软件包的新版本创建完整的MSI。这样你可以在将来开始修补MSI。 – 2011-03-29 12:32:45

回答

0

如果文件编号的版本较低,则版本化文件(如可执行文件)将自动被覆盖。请参阅Copy if not exist in WiX

2

您只能为MSI(安装程序)创建MSP(修补程序)。另外,如果将组件安装到与原始安装相同的目录中,则会遇到组件引用计数问题。问题是MSI会去查看已经存在的文件,将其作为共享资源并增加使用率计数器。然后在卸载它会减少,看到它不是0,并删除卸载文件。

我建议安装到一个新的目录,然后使用RemoveFile表来摆脱旧的文件。此外,我会建议遵循良好的CM /版本控制实践,以便您不必担心版本说谎等黑客行为。

如果你所有的应用程序只需要xcopy文件,设置一个目录,甚至可能是一个ShortCut,它应该是小菜一碟。