【问题标题】:windows installer custom action install & uninstall both called when upgradeWindows 安装程序自定义操作安装和卸载都在升级时调用
【发布时间】:2011-08-02 20:45:16
【问题描述】:

Excel 插件、VS2010、C#、Windows 安装程序

VS2010,安装项目,RemovePreviousVersion:True,DetectNewerInstalledVersion:True,InstallAllUsers:True

我在自定义操作中有一些安装、卸载代码

当我进行升级安装时,我注意到,首先调用 install,安装较新版本,然后调用卸载,卸载较新版本。最终的结果是无法正常工作的 AddIn。

如果我进行新安装(即没有早期版本的插件),则只调用 install 并且插件安装成功

我在 VS2008 中构建时安装程序可以正常工作,我只是将项目转换为 VS2010,然后出现问题。

有人知道为什么吗?谢谢

【问题讨论】:

标签: visual-studio-2010 installation custom-action


【解决方案1】:

您可能错误地安排了RemoveExistingProducts - 我不知道这是否可以在 VS 安装程序包中更改,但这将是导致您所有痛苦的操作。

【讨论】:

  • 谢谢您,先生。这未在 VS 设置中公开。如何检查/纠正它?我只知道逆戟鲸。谢谢
  • 我用ora看了一下RemoveExistingProducts,在InstallExecuteSequence中,它介于InstallExecute和InstallFinalize之间。我对 VS2008 和 VS2010 生成的 msi 进行了比较,但无法区分 RemoveExistingProducts 和 InstallExecuteSequence。仍然无法弄清楚为什么他们的行为不同。谢谢
  • 我检查表 RemoveFile 是空的,但在 Action RemoveFiles 中仍然删除了很多文件
  • CustomAction 表中这是什么,一行包含 Action:_D5BA2A17_DAA5_49D8_B762_FE982EFC7566.uninstall,类型:3073,源:InstallUtil,目标:ManagedInstall。 _D5BA2A17_DAA5_49D8_B762_FE982EFC7566是什么?
  • @toosensitive - 抱歉,我对 VS 安装包不够熟悉 :(
【解决方案2】:

我已经在评论中回答了我的问题。为了方便搜索,现在明确回答。

我在 Orca 中编辑了我的 MSI 文件,并在 InstallInitialize 之后重新排序了 RemoveExistingProducts(序列号 1501)。这是在 InstallExecuteSequence 表中找到的。这最初是序列号 6550。

请参考Web setup project removes files after upgrade from VS2008 to VS2010

【讨论】:

    猜你喜欢
    • 2013-01-06
    • 2012-03-21
    • 2011-04-30
    • 2019-04-19
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多