gpt4 book ai didi

c# - 一个用户在 "Apps & Features"和 "Programs & Features"中的应用可见性,但对另一个用户不可见

转载 作者:太空宇宙 更新时间:2023-11-03 11:57:28 27 4
gpt4 key购买 nike

我已经为 Windows 10 创建了一个 C# 应用程序。它是通过使用 WIX 生成的 MSI 安装的。但是,当它为一台机器上的一个用户安装时,并非出于我的意图,它不会为同一台机器上的其他用户安装。

这种行为实际上很好(虽然是计划外的),但问题出现在卸载时。

如果有两个用户安装它,只有用户 a 卸载它,则用户 a 会完全卸载它,用户 b 会损坏它。 User-b 仍会看到它列在“设置”应用的“应用和功能”中,但“C:\Program Files (x86)”中的所有文件都将被删除,因此它根本不会运行。

我要寻求的解决方案是这样的。当 user-a 卸载它时,所有应该发生的事情(如果 user-b 也安装了它)是应该从“应用程序和功能”下的“设置”应用程序以及“程序和功能”下的控制面板中删除列表。不应从“C:\Program Files (x86)”中删除任何文件。

这应该是可能的,因为当最初仅由一个用户安装时,“C:\它列在“设置”或“控制面板”中。

我的问题是,如何仅从“设置”>“应用程序和功能”以及“控制面板”>“程序和功能”中为一个用户删除指向该应用程序的链接?

我看到有一些方法可以在不卸载应用程序的情况下为两个用户删除列表,例如更改/删除注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

...但这不是我的目标。我只想能够删除仅一个用户的列表,同时保留所有其他用户的列表。

如果我知道列表如何为一个用户而不是另一个用户提供,我可能会想出如何让我的应用程序实现这一点。但我不确定首先填充这两个程序列表的是什么,或者是什么会使它们对不同的用户有所不同。

我希望这是有道理的!提前感谢您提供的任何帮助!

最佳答案

设置 Package/@InstallScope="perMachine"。这可确保只有一份副本,并由计算机上的所有用户共享。

关于c# - 一个用户在 "Apps & Features"和 "Programs & Features"中的应用可见性,但对另一个用户不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58939527/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com