MSI安装问题

时间:2014-04-29 14:59:31

标签: wix windows-installer wix3.5 msiexec

我有一个MSI文件,它将一组dll从源文件复制到目标文件夹。在运行MSI时,dll将复制到目标文件夹,同时MSI也会安装在系统中。我可以在ADD或REMOVE程序中看到它。

每当dll发生变化时,我都会复制新的dll并重新构建MSI。当我试图在同一系统中运行MSI时,我收到错误“已经有另一个版本。卸载该版本并继续”类似的东西。

到目前为止我正在做的是卸载旧的(MSI)并安装新的。

但我希望MSI使用MSI中的最新dll更新旧版dll,而不是再次卸载和安装。

提前致谢。

2 个答案:

答案 0 :(得分:3)

您不能只是重新运行MSI来进行更新。这里有一些背景知识,即使你没有使用Visual Studio设置,它仍然是相关的:

https://www.simple-talk.com/dotnet/visual-studio/updates-to-setup-projects/

要替换单个文件,请构建补丁,msp文件。要升级整个设置,包括该Dll,然后使用WiX majorupgrade元素,这可能比构建补丁容易得多,特别是如果您的设置很小并且安装时间不长。增加Dll的文件版本以确保它被替换。

答案 1 :(得分:1)

欢迎来到StackOverflow - 这似乎是你的第一篇文章。如果我是你要概述如何实现WIX主要升级,我会阅读这个主题:How to implement WiX installer upgrade?。这是另一个线程(没有读过这个):How to get WiX major upgrade working?

主要升级本质上是自动卸载现有版本并重新安装新版本。这是Windows Installer中最不容易出错的更新机制。这是首先尝试的推荐方法 - 它运作良好。一个小的升级 - 升级现有的安装,通常在开始时更难以正确。许多技术限制适用。以下是对次要升级工作所需内容(以及其他详细信息)的非常好的总结:http://www.installsite.org/pages/en/msi/updates.htm

查看this well known wix tutorial升级和修补程序。并MSDN