我在执行VS 2010的安装文件时发现了一个奇怪的问题。安装程序应该将一些文件复制到当前用户的App Data中。当我在具有管理员权限的帐户上运行安装程序时,一切正常。在来宾帐户上安装时出现问题。例如,我尝试在guset帐户A上安装app。我必须选择run as option。我选择具有管理员权限的用户B.安装完成后,所有文件都被复制到用户B的App Data文件夹中,而不是我预期的A ...为什么?对此有什么解决方案吗?
答案 0 :(得分:1)
它被称为部署项目,它是过时的和破碎的技术 - 我建议使用WIX。那些愚蠢的项目应该一直在Visual Studio中 - 他们甚至不遵守MSI文件应该如何工作的基础知识。
您无法控制的一件事是激活管理员权限所需的提升请求。 WIX允许您完全控制MSI功能。
啊 - 逻辑?您安装AS USER B - 所以文件肯定会进入用户b的文件夹。我必须选择run as option。我选择具有管理员权限的用户B.安装完所有文件后 被复制到用户B的文件夹App Data,而不是我预期的A ...为什么?
一般来说,您需要管理员权限来安装softawre。一个人不能这样做。点。安装是一个棘手的高权限,对于没有计算机权利的人来说,这不是什么东西。
安装程序应将一些文件复制到当前用户的App Data中。
每个定义无效。点。正常的安装运行不应该在用户的应用程序数据中安装任何东西 - 另一个用户运行该软件是什么?软件可以在启动时(从共享应用程序数据)进行复制,但是NORMAL安装(不是每用户安装)不应该将内容放入用户个人AppData文件夹中。这违反了基本的MSI原则。
赛门铁克有一个很好的文档,说明了唯一有效的方法(对不起,设置项目不支持MSI的高级功能:
http://www.symantec.com/business/support/index?page=content&id=HOWTO4840
如上所示:
为了将文件安装到每个用户的配置文件,必须进行应用程序的自我修复。
WIX在帖子中有类似的答案:
我假设您没有按用户安装;)
我还假设您没有根据ICE38(设置警告)设置注册表项:
http://msdn.microsoft.com/en-us/library/aa368961%28VS.85%29.aspx
一般情况下:不要这样做。用户AppData可以/应该在用户启动应用程序时发生。