Wix 卸载快捷方式不起作用

2023-12-07

我正在尝试为我的应用程序创建卸载快捷方式,并且我正在使用此链接中的确切标记:

http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/create_uninstall_shortcut.html

它在程序菜单文件夹下的应用程序目录中创建一个快捷方式。

问题是,单击卸载快捷方式时,我收到以下错误消息:“无法打开此安装包。请验证该包是否存在并且您可以访问它,或者联系应用程序供应商以验证这是有效的Windows 安装程序包”

以下是我在 .wxs 文件中的内容

    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
            <Directory Id="APPLICATIONROOTDIRECTORY" Name="MyApplication"/>
        </Directory>
        <Directory Id="ProgramMenuFolder">
            <Directory Id="ApplicationProgramsFolder" Name="MyApplication"/>
        </Directory>
    </Directory>

    <DirectoryRef Id="APPLICATIONROOTDIRECTORY">
        <Component Id="myapplication.exe" Guid="xxxxxxxx-1BF3-4394-ABE4-CABB29D6454C">
            <File Id="myapplication.exe" Source="myapplication.exe" KeyPath="yes" Checksum="yes"/>
        </Component>
        <Component Id="documentation.html" Guid="xxxxxxxx-44F3-4E6C-87B9-903CF17EF002">
            <File Id="documentation.html" Source="documentation.html" KeyPath="yes"/>
        </Component>
    </DirectoryRef>

    <DirectoryRef Id="ApplicationProgramsFolder">
        <Component Id="ApplicationShortcut" Guid="xxxxxxxx-F7C4-40D6-930C-3BD78143A0EF">
            <Shortcut Id="ApplicationStartMenuShortcut" 
                 Name="MyApplication" 
               Description="Uninstall Test"
                Target="[#myapplication.exe]"
                      WorkingDirectory="APPLICATIONROOTDIRECTORY"/>
            <!-- Step 1: Add the uninstall shortcut to your installer package -->
            <Shortcut Id="UninstallProduct"             
                      Name="Uninstall My Application"
                      Description="Uninstalls My Application"
                      Target="[System64Folder]msiexec.exe"
                      Arguments="/x xxxxxxxx-1D27-4656-AB3F-41A2047CB6C0"/>
            <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
            <RegistryValue Root="HKCU" Key="Software\Microsoft\UninstallTest" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
       </Component>
    </DirectoryRef>

    <Feature Id="MainApplication" Title="Main Application" Level="1">
        <ComponentRef Id="myapplication.exe" />
        <ComponentRef Id="documentation.html" />
        <ComponentRef Id="ApplicationShortcut" />   
    </Feature>
</Product>

我还无法找到解决这个问题的方法。任何帮助,将不胜感激。谢谢


将卸载快捷方式放在开始菜单中始终违反准则- 至少自 2000 年代初以来,随着 Windows 8 中引入新的开始菜单图块,这样做确实非常不可取。请阅读以下文章:开始屏幕上的桌面应用程序磁贴(该做什么和不该做什么)。

我没有可以测试的系统,但是Windows 8实际上可能隐藏卸载快捷方式。您还应该避免使用其他快捷方式(自述文件、网站快捷方式等)。我刚刚在 Windows 10 上进行了测试,我确实可以在开始菜单中看到卸载快捷方式。

在这种特殊情况下,我的建议实际上是消除您的自定义快捷方式并以这种方式声明成功。如果这对你来说不理想,我很抱歉,但如果你不介意我这么说的话:不要对抗基本的 Windows 设计 - 它们会反击,你将永远后悔试图驯服它们。只要给野兽装上马鞍,让它撕裂:-)。

话虽如此,您可能按照 Chris Painter 的建议,与卸载快捷方式中的 ProductCode 不匹配。为了调试,您可以尝试更改:Arguments="/x xxxxxxxx-1D27-4656-AB3F-41A2047CB6C0"/> to Arguments="/x [ProductCode]"/>所以它看起来像这样:

<Shortcut Id="UninstallProduct"             
           Name="Uninstall My Application"
           Description="Uninstalls My Application"
           Target="[System64Folder]msiexec.exe"
           Arguments="/x [ProductCode]"/>

请记住卸载所有实例,重建然后安装新版本来测试这一切。

我进行了快速测试,这在 Windows 10 上有效。但我认为您仍然应该删除该快捷方式。有趣的是,在同一位置添加 Internet 快捷方式(文件在磁盘上创建)在开始菜单中不可见(这也可能表明 Windows 10 中也隐藏了快捷方式)。

以供参考:

  • Windows 8/8.1/10 中不显示名称为“卸载 ”的快捷方式
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Wix 卸载快捷方式不起作用 的相关文章

  • 在wix中添加文件夹到安装程序而不是文件?

    我的安装程序必须将文件复制到 installdir 我的应用程序有大约 2000 个文件 我不可能编写脚本将每个文件添加到安装程序中 wix中是否有任何选项可以让我一次添加所有文件或包含文件的整个文件夹 我是 wix 新手 我在任何教程中都
  • 使用 元素通过 Wix 运行 SQL 脚本文件

    我是 Wix 安装程序的新手 我有一个要求 必须提供 SQL Server 登录凭据并从特定路径运行脚本 我不明白出了什么问题 项目已成功构建并创建了 msi 运行后我收到以下错误 错误26204 错误 2147217900 无法执行SQL
  • 自定义 WiX Burn 引导程序用户界面?

    我主要使用 WiX 3 6 创建一个安装包 这样我就可以利用Burn http en wikipedia org wiki WiX Burn引导功能 到目前为止 我已经将多个 MSI 软件包捆绑在一起 这些软件包将与内置引导程序应用程序一起
  • WiX - 通过检查修订来防止降级

    我正在寻找一种方法来防止我的应用程序降级 但 问题 是 我必须检查修订号 例如 安装 1 0 0 1 时应该可以安装 1 0 0 2 但安装 1 0 0 2 时不应该安装 1 0 0 1 我知道 Element MajorUpgrade 仅
  • WIX 自动生成 GUID *?

    假设我生成产品 ID 为 的 WIX XML 文件 另外 对于每个组件 GUID 我都使用
  • 让 WIX 在项目中包含引用

    我对 WiX 和设置自定义安装程序完全陌生 所以我对问题的主题表示歉意 我有一个内部业务应用程序 日记 它构建并运行良好 因此我按照教程 官方文档添加 WiX 项目并引用日记的 csproj 然后构建并运行这个最基本版本的 WiX 安装程序
  • wix 3 安装程序:未解析的绑定时变量!(bind.fileVersion.Name.exe)

    我正在尝试使用 Wix3 中的绑定 bind fileVersion 即 3 11 1 由于某些原因 我收到以下错误消息 未解析的绑定时变量 bind fileVersion TestWix3 exe 我的目标是填写 产品 ID 行 特别是
  • 验证服务是否被标记为删除

    有时 当我卸载安装程序 使用 WIX 创建的 时 服务仍标记为删除 用户必须重新启动计算机才能再次安装 我如何验证该服务是否已标记为删除并告诉用户在进行其他安装之前重新启动计算机 一般来说 当某项服务仍然锁定在该服务上 从而阻止 Windo
  • 捕获数据包后会发生什么?

    我一直在阅读关于网卡捕获数据包后会发生什么的内容 我读得越多 我就越困惑 首先 我读过传统上 在网卡捕获数据包后 它会被复制到内核空间中的一个内存块 然后复制到用户空间 供随后处理数据包数据的任何应用程序使用 然后我读到了 DMA 其中 N
  • WiX 属性引用另一个属性

    我正在尝试为我的应用程序创建多个快捷方式 通过使用在命令行上传递不同的参数Arguments的属性Shortcut http wix sourceforge net manual wix2 wix xsd shortcut htm元素 我希
  • 警告 LGHT1076:ICE91:文件“doc_code_file1”将安装到每个用户目录“code_Simple”

    即使我添加了注册表值设置 它给出以下警告 warning LGHT1076 ICE91 The file doc code file1 will be installed to the per user directory code Sim
  • Wix 4 收获目录的解释?

    我正在尝试学习 Wix 4 0 来为我正在开发的应用程序创建安装程序 构建我的应用程序后 我在一个文件夹中有一堆文件 我想将它们安装到程序文件中 我已经读到收获功能允许我简化此过程并为整个目录创建组件映射 但我不确定这是什么example
  • 如何在自定义操作期间移动进度条

    在安装程序中运行自定义操作时 没有进度条 我们正在使用立即 C 管理代码自定义操作 运行自定义操作时是否有其他方法显示进度 预先致谢 维卢 使用 ProgressText 元素 模板 属性是放置标记以反映进度的地方 例如 请参阅标准 Ins
  • CAQuietExec 命令字符串必须以带引号的应用程序名称开头

    好吧 我相信我正在按照 Wix3 5 中的在线示例执行安静命令 但我似乎无法让我的命令被引用
  • 如何引导 SQL Server 2008 Express SP1?

    我正在尝试将 SQL Server 2008 Express SP1 引导到我的应用程序中 之前我使用 Wise for Windows 来执行必备安装 但 Wise 尚不支持 Windows Installer 4 5 我现在尝试将 Vi
  • 如何创建具有有效签名的预配置安装程序(MSI 或 EXE)?

    我们希望用户下载我们的 Windows 软件的预配置安装程序 预配置数据包含基于用户帐户数据的设置 定制将在 Linux 上运行的 Java 服务器中完成 我们需要对这些安装程序进行数字签名 不幸的是 由于安全政策的原因 我们无法在这些服务
  • Wix 安装结束后添加多个复选框

    我的 C 应用程序有一个设置 在设置结束时 我添加了一个建议启动应用程序的复选框 效果很好 但我无法添加第二个复选框来提议启动可选安装程序 有我的代码
  • 如何说服 VS2005 msi 升级?

    我有一个使用 VS2005 用 C 编写的 Windows 服务 安装是通过一个向导调用 msiexec 来安装同样使用 VS2005 创建的 msi 文件 我在生成将从一个版本的服务升级到另一个版本的 msi 文件时遇到问题 向导程序负责
  • 将引导程序与 MSI ui 一起使用

    我有可以安装的 MSI 文件 它包含一个定制的 UI 还收集用户的数据 作为安装的一部分 如果缺少的话我想安装以下内容 Net框架4 0 Microsoft Visual C 2010 可再发行组件包 x64 据我所知 引导程序也应该包含
  • 在 Azure DevOps 中为 Wix MSI 文件生成 GUID

    我正在为 Web 服务器应用程序和 Sitecore 前端应用程序设置 Wix 安装程序 我的问题并非特定于 Web 服务器或 Sitecore 我的问题是 Wix 以及如何使用它进行持续交付 1 Wix 需要每个文件和产品本身的 GUID

随机推荐