【问题标题】:WiX/Windows Installer: Re-install to a new folderWiX/Windows Installer:重新安装到新文件夹
【发布时间】:2010-03-12 19:08:25
【问题描述】:

1。 我正在使用 WiX 创建安装程序,并希望实现以下行为: 如果用户启动产品的 msi 安装程序并且该产品已安装,则向导的工作方式类似于纯(第一次)安装,但某些情况除外(例如,许可协议屏幕被省略)。该向导应该允许例如更改安装文件夹,选择是否放置桌面快捷方式,... 我试着做:

<Publish Event="ReinstallMode" Value="amus"><![CDATA[INSTALL_MODE = "Change"]]></Publish>
<Publish Event="Reinstall" Value="ALL"><![CDATA[INSTALL_MODE = "Change"]]></Publish>

但安装完成后:产品在第一次安装的同一文件夹中;桌面图标与第一次安装后的状态相同。 MSDN 说:“如果已经为当前用户或其他用户安装了某些使用该路径的组件,请不要尝试更改目标目录路径”。 有没有办法在另一个文件夹中重新安装并在重新安装时添加/删除桌面图标?

2。 对某些组件使用相同的 KeyPath 是否正常? 例如,DeskTop 和 Programs 菜单快捷方式的注册表值是否相同? MSDN 说:“两个组件不能共享相同的关键路径值”。但是编译和验证正常。而且我没有发现使用相同键路径的问题。

【问题讨论】:

    标签: installation wix directory


    【解决方案1】:
    1. 我不确定我是否正确理解了您的要求,但似乎Major Upgrades 涵盖了您需要的功能。

    2. 看看这个古老的 ;-),但仍然很有价值 blog entry,作者 Rob Mensching。 KeyPath 概念在此处的示例中得到了清晰的解释。

    希望这会有所帮助。

    【讨论】:

    • 谢谢 1. > 1.我不确定我是否正确理解了您的要求...这可能是因为我的“特定”英语:) 我会尝试改写。
    • 假设我们第一次安装 myprog.msi。安装程序向我们展示了一个向导。向导显示许可协议,提示指定安装目录,提示指定是否添加桌面快捷方式等。向导完成后,我们的应用程序安装成功。现在我们再次启动 THE SAME myprog.msi。我希望在启动后,几乎相同的向导可以工作(但没有 LA,...),但我们可以指定另一个安装文件夹,桌面快捷方式的另一个选项等。所以升级似乎不适合我的情况.
    • 啊,我明白了。看起来您希望安装应用程序的多个实例。这不是一件小事。看看这篇文章:msdn.microsoft.com/en-us/library/aa369523(VS.85).aspx。您必须熟悉实例转换的概念。 WiX 通过 InstanceTransforms 元素原生支持它:wix.sourceforge.net/manual-wix3/wix_xsd_instancetransforms.htm。特别注意“文件数据”和“非文件数据”这两个术语——你必须保持最后一个隔离。希望这是对您的问题 #1 的更合适的答案。
    • 再次感谢。不,我不想要多个实例。我会尝试再次解释。假设第一次启动 msi 将应用程序安装在“C:\MyApp1”文件夹中。在同一 msi 的第二次启动期间,如果用户选择安装在“C:\MyApp2”文件夹中,那么在安装完成后,用户只能在“C:\MyApp2”文件夹中安装应用程序 - 文件夹“ C:\MyApp1" 必须删除,注册表值必须保留,shortcurs 必须引用新位置,.... 似乎我们可以在一些流行的(非基于 Windows Installer 的)安装系统中看到这种行为。
    • 确实,目前这不是关键要求。简单地说,我有几个其他产品的“手动”安装程序,允许在另一个文件夹中重新安装。而且我想使用 Windows Installer 为新应用程序实现相同的功能。至于此类安装程序功能的实际使用:很久以前,由于可用驱动器空间不足,我在另一个逻辑驱动器上重新安装了大型软件包:)。
    猜你喜欢
    • 2018-01-23
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    相关资源
    最近更新 更多