Installation 我们如何创建一个比';不需要管理员权限吗?

Installation 我们如何创建一个比';不需要管理员权限吗?,installation,windows-xp,windows-vista,administrator,Installation,Windows Xp,Windows Vista,Administrator,使用Visual Studio创建安装程序/MSI时,是否可以为不需要管理员权限即可安装的简单应用程序进行安装?如果在Windows XP下不可能,那么在Vista下可能吗 例如,一个简单的图像处理应用程序,允许您将照片粘贴到背景上。我相信安装到Program Files文件夹需要管理员权限?我们可以改为安装在\AppData文件夹中吗 目标是创建一个应用程序,该应用程序将为不是本地计算机上administrators组成员的用户安装,并且不会在Vista上显示UAC提示 我相信这种方法的一个限

使用Visual Studio创建安装程序/MSI时,是否可以为不需要管理员权限即可安装的简单应用程序进行安装?如果在Windows XP下不可能,那么在Vista下可能吗

例如,一个简单的图像处理应用程序,允许您将照片粘贴到背景上。我相信安装到Program Files文件夹需要管理员权限?我们可以改为安装在\AppData文件夹中吗

目标是创建一个应用程序,该应用程序将为不是本地计算机上administrators组成员的用户安装,并且不会在Vista上显示UAC提示

我相信这种方法的一个限制是,如果它安装在当前用户的app data文件夹下,其他用户就无法运行它

更新: 能否在普通setup.exe类型的安装程序中打包一次单击安装?您可能会问我们为什么要这样做-原因是我们有一个安装程序,它执行prereq检查并安装所需的任何东西(如.NET),然后我们下载并执行MSI。我们想显示一个正常的安装程序开始屏幕,即使这是唯一的东西显示。我们不介意应用程序只能被一个用户(安装它的用户)看到。

Vista对这类事情的限制更严格,所以如果你不能在XP中使用,你可以打赌Vista也不会让你使用

使用windows installer安装到program files文件夹需要管理权限,这是正确的。事实上,对该文件夹的所有写访问都需要管理员权限,这就是为什么您不应该再将数据存储在与可执行文件相同的文件夹中


幸运的是,如果您使用的是.Net,您可以使用ClickOnce部署而不是msi,msi应该允许您在不需要管理员权限的情况下安装到每个用户配置文件中的文件夹。

我知道的唯一方法是在.Net 2.0中构建ClickOnce应用程序+

如果应用程序的用户安装了正确的预请求,那么应用程序就可以“启动”

退房:


如果启用了UAC,则无法写入程序文件。安装到\AppData实际上只会为一个用户安装程序


但是,您必须注意,任何需要更改注册表的配置更改都可能需要管理员权限(我必须仔细检查)。对桌面背景的即时修改最终存储在HKEY_CURRENT_USER中。

ClickOnce是解决此问题的好方法。如果转到“项目属性”>“发布”,则可以为此设置设置。特别值得一提的是,“安装模式和设置”值得一看:

  • 该应用程序只能在线使用——这实际上是一个“运行一次”的应用程序
  • 该应用程序也可以脱机使用(可从“开始”菜单启动)——这将在PC上安装该应用程序
实际上,您不必使用ClickOnce web部署工具。如果执行生成>发布,然后压缩发布\文件夹的内容,则可以将其作为安装程序进行有效分发。要使其更加平滑,请从自动运行setup.exe文件的文件夹中创建自解压归档

即使您以这种方式安装,如果您选择使用它,在线更新仍然适用于应用程序。您所要做的就是将ClickOnce文件联机,并将URL放入项目的“发布属性”页面