【问题标题】:Wix bootstrapper uninstall shortcutWix 引导程序卸载快捷方式
【发布时间】:2012-05-30 15:00:28
【问题描述】:

我正在尝试创建快捷方式来卸载已安装的引导程序。 因此,我只想在添加和删除程序时执行与卸载相同的操作。

我发现 de bootstrapper 安装在 package cache{guid}[bootstrappername].exe 中

它安装的其中一个 msi 包还安装了此引导程序 /uninstall 调用的快捷方式。 但是问题是包的 GUID 在每次构建时都会重新生成。所以我有些如何将其设置为 msi 属性。 但我无法弄清楚如何做到这一点,在我看来,GUID 在构建过程中是未知的,但只有在构建完成后才知道?

还有其他方法可以确定缓存引导程序的位置吗?

【问题讨论】:

    标签: wix installation burn


    【解决方案1】:

    如果您使用托管 BA,您可以试试这个:

    在您的 Bundle.wxs 链中与 MsiPackage 添加 MsiProperty 类似:

    <MsiPackage SourceFile="Setup.msi"> <MsiProperty Name="UNINSTALLER_PATH" Value="[UNINSTALLER_PATH]"/> </MsiPackage>

    在代码中的某处(在调用安装操作之前),您需要为此变量设置值,如下所示: Engine.StringVariables["UNINSTALLER_PATH"] = string.Format(@"{0}\{1}\{2}\{3}.exe", Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Package Cache", Engine.StringVariables["WixBundleProviderKey"], ProductName);

    Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) – %systemdir%:\ProgramData 的路径

    Package Cache- 安装包缓存的 ProgramData 中的文件夹名称

    Engine.StringVariables["WixBundleProviderKey"] – 缓存包创建的文件夹名称 (guid)

    ProductName – 引导程序“exe”的名称

    最后在你的 Product.wxs 中你可以创建快捷方式通常的方式,但是在“Target”属性中你需要传递 UNINSTALLER_PATH 值和“Arguments”设置 =“/uninstall”:

    &lt;Shortcut Id="Shortcut1" Name="Uninstall" Description="Uninstall" Target="[UNINSTALLER_PATH]" Arguments="/uninstall" WorkingDirectory="Programmenufolder" /&gt;

    对不起我的英语:)

    【讨论】:

      【解决方案2】:

      您可以使用您在 bundle.wxs 中定义的捆绑升级代码来确定位置。

      使用注册表路径指向您的捆绑包的 Windows 卸载位置

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{你的包的升级代码}

      或用于 64 位操作系统

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall{你的包的升级代码}

      BundleCachePath 包含完整路径,包括您的 bootstrapper.exe 文件名到缓存包的包缓存。

      您还可以使用包含完全安静卸载命令的值 QuietUninstallStringUninstallString 以非安静模式启动卸载。

      【讨论】:

      • 所有这些都是 Burn 的实现细节:未记录并且可能会更改。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-19
      • 2014-08-10
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多