我们在没有连接到互联网的XP机器上运行.Net Winforms应用程序。我们通过分发带有.MSI安装程序文件的CD来安装和更新此应用程序。用户从“添加或删除程序”控制面板卸载旧应用程序,然后从CD安装新应用程序。
不久前,我们要求用户在个人帐户下登录,而不是共享帐户。所有这些个人帐户都是来自XP用户帐户控制面板的Power Users组中的“标准用户”帐户。这样的用户可以为所有用户安装应用程序,我们已对此进行了测试并且可以正常运行。
直到最近。更新远程计算机的用户表示,虽然安装了应用程序和数据文件,但应用程序不会出现在“添加或删除程序”中。尝试运行新安装程序会显示一个对话框,显示“系统管理员已设置策略以阻止此安装”。事实并非如此,我们在此计算机上未设置任何策略,并且Windows管理控制台的“组策略”面板中没有Windows Installer策略。
我们尝试使用管理员帐户登录此计算机,并看到同样的事情。
我目前的理论是应用程序安装在稍后删除的帐户下,只有该用户可以卸载该应用程序。但是为什么管理员不能卸载应用程序?是否有某种方法让安装程序删除旧应用程序,无论是谁安装了它?
其他信息:
我不是问用户如何卸载应用程序;我们创建安装程序,我想知道我们的部署项目如何检测和处理这种情况。
技术人员以管理员身份登录受影响的计算机,并说该应用确实出现在“添加/删除”控制面板中,但没有“删除”按钮,选择它会显示应用信息,但没有按钮。
我不确定该应用最初是否由已删除的用户安装,这是基于最近在此计算机上更改了用户帐户这一事实的猜测。
答案 0 :(得分:1)
好吧,这不是答案,只是为了帮助诊断;你可以查看下面的注册表项,看看你的应用程序是否有一个条目?这是填充添加/删除程序的方式:
HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \卸载
答案 1 :(得分:1)
我建议使用MSIZAP强制删除条目,但这不会删除任何可能存在的现有文件,只是删除应用程序的Windows安装程序条目。
答案 2 :(得分:0)
你自己解释一下。 安装程序时必须检查安装是否在正确的条件下完成。所以在安装之后,让程序检查谁安装了它。 或者在安装之前触发一些代码进行检查(安装程序包编辑器)
我也看到你谈论从互联网断开连接......奇怪的是,他们是否也与LAN网络断开连接?如果是这样,它可能在更多的地方出错,甚至可能是注册表损坏的简单案例。