普通非管理员帐户的 ClickOnce 卸载

ClickOnce uninstall for normal non admin accounts

我的 Win 10 Pro 计算机上有 2 个帐户。一个有管理员权限,另一个默认没有管理员权限。 我可以使用非管理员帐户安装我使用 Visual Studio 2016 创建的 ClickOnce 应用程序。有效。

但是当我尝试从非管理员权限帐户卸载应用程序时,系统提示我切换到管理员帐户。但是,管理员帐户不知道此应用程序,因此在尝试卸载该应用程序时它会崩溃并出现一些 ARP 错误。

抓住 22!

那么我该如何解决这个问题?Visual-studio 中是否有一些控制这个的开关?

解决方法是直接 运行 卸载程序,而不是通过 在 Win10 中添加或删除程序

您可以在注册表项HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall下找到卸载程序命令,搜索应用程序的密钥,并获取UninstallString的值。 如果您直接执行该命令,卸载程序将按预期工作,无需用户权限提升。

您必须执行的命令如下所示:

rundll32.exe dfshim.dll,ShArpMaintain MyApp.application, Culture=neutral, PublicKeyToken=0000000000000000, processorArchitecture=msil

我确定这是某种 Windows 10 问题,因为它在 Windows 7 上运行良好。

解决方法是使用控制面板卸载应用程序。

删除我作为非管理员用户安装的应用程序没有问题

经历了同样的问题(2 年后),并没有注意到 "Control Panel" 和 "Settings" 之间的区别,我想详细说明 Peter Vogt 自己的回答:

要在 Windows 10 上卸载没有管理员权限的 ClickOnce 应用程序,请使用旧式应用程序列表,现在标记为 程序和功能 。不幸的是,这不能直接从开始菜单搜索,但可以在(至少)2 个地方找到:

  • 直接从旧式控制面板,如 "Uninstall a program"。
  • 在新的“设置”->“应用程序”屏幕 ("Apps & features") 中,使用右侧的 "Programs and Features" link。