2011-07-18 54 views
1

我在运行Windows 7 Starter的上网本上测试了我的安装程序,使用标准用户帐户登录并注意到以前没有遇到的一些问题。Visual Studio安装项目 - 使用Windows标准用户帐户安装当前用户

由于用户是以标准用户身份运行的,系统会提示他们输入管理员帐户详细信息。这很好,并允许安装程序启动。现在,当用户就可以选择是否要安装该软件的当前用户/所有用户和他们选择的当前用户发生以下情况:没有为创建

  • 的快捷方式(桌面和应用程序菜单)标准用户,而不是为管理员帐户创建的。我退出了标准用户帐户并以管理员帐户登录并且快捷方式显示正确。这不是我所期望的。

  • 在这台机器上卸载还留下了由安装程序创建的注册表项。这种行为在我尝试过的桌面上没有发生。

需要注意的一点(但真的不应该影响这个场景)是我用dotNetInstaller来引导我的应用程序需要运行一些prerequisties(SQL精简DB 3.5)之前的引导程序本身调用的Visual Studio 2010安装可执行文件(我的应用程序)

如果标准用户登录并且他们尝试安装我的产品,请输入管理员凭据并选择当前用户安装,如何获取它以安装标准用户帐户而不是管理员帐户的快捷方式?

此外,为什么当用户在此电脑上删除程序(通过添加/删除程序)时,作为安装项目一部分创建的注册表项不会自行删除?这款上网本上的Windows安装是否以某种方式损坏?

回答

1

如果标准用户登录成功,而且他们试图安装我的产品, 输入管理员凭据并选择一个当前用户安装,如何 我得到它安装快捷方式为标准用户帐户而 比管理员帐户?

你不行。标准用户的每用户安装需要在没有提升的情况下运行。这意味着它只能使用每个用户的位置,如应用程序数据文件夹和HKEY_CURRENT_USER配置单元。如果您提升每个用户的安装次数,它将针对您提升的帐户执行。

而且为什么不作为设置 项目的一部分创建的注册表条目中删除自己当用户在该PC中删除该程序(通过 添加/删除程序)?

这个注册表项到底在哪里?如果它在HKEY_CURRENT_USER中,卸载过程可能无法访问它(例如,它是为其他用户帐户安装的)。您是否尝试创建卸载日志以查看会发生什么?

+0

_标准用户的每用户安装需要在没有提升的情况下运行_ - 谢谢告诉我。我不确定如何让程序在没有提升的情况下运行。这可能是一个可执行文件。 – GoalMaker

+0

注册表项在HKEY_LOCAL_MACHINE \ Software \ [产品名称]中创建。它的一个标志说明该程序已被安装并被引导程序使用。 – GoalMaker

+0

要在没有提升的情况下运行每个用户的安装,您需要确保它不使用像Program Files和HKEY_LOCAL_MACHINE这样的每台计算机位置。注册表项是使用Windows Installer支持还是通过自定义操作创建的?由自定义操作或您的应用程序创建的资源不会被卸载删除。 –

相关问题