msi安装程序运行两次

时间:2010-08-04 09:39:57

标签: visual-studio-2008 windows-installer custom-action

我有一个通过msi安装的程序。 msi是使用VS2008部署项目构建的,并且在安装完成后具有自定义操作来运行程序。

运行msi后,我只需更新版本号,生成新的产品代码,即可在同一台PC上再次运行msi。但是,我想要的是能够在同一台PC上第二次运行msi(不使用msi修复)并重新安装软件(即使没有任何改变)。这可能吗?

4 个答案:

答案 0 :(得分:3)

您可以通过从InstallExecuteSequence表中删除RegisterProduct操作,RegisterUser操作,PublishProduct操作和PublishFeatures操作来完成此操作。通过删除这些标准操作,应用程序将不会在系统的MSI数据库中注册,您可以反复运行并重新运行安装,就像它是首次安装一样。

MSDN:
Adding and Removing an Application and Leaving No Trace in the Registry

答案 1 :(得分:0)

编辑:我读错了。

单稳

答案 2 :(得分:0)

不,这是不可能的。即使您更改了ProductCode和ProductVersion,第二次运行它也将始终以修复模式运行。甚至修补方法也在实现修复模式,并且基本上使用补丁文件作为转换。

实现此目的的唯一方法是以某种方式阻止应用程序在ARP中的任何输入,但我怀疑这将破坏应用程序的弹性,在这种情况下,您可能不希望使用MSI作为您的传送系统。

我过去使用纯InstallScript设置完成了这项工作。设置完成后,我删除了与ARP相关的注册表项,因此另一个安装将像新安装一样。

答案 3 :(得分:0)