我正在尝试为我的应用程序创建卸载快捷方式,并且我正在使用此链接中的确切标记:
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(使用前将#替换为@)