针对非管理员用户的MSI

问题描述:

我在VS2015中使用NetOffice制作了一个Outlook加载项,并针对.NET 2.0,现在我需要将其打包以供非管理员用户进行安装(它不需要管理员权限)。我通常使用ClickOnce但缺少它(假设因为我没有使用VSTO?),所以我下载并安装了Visual Studio 2015 Installer Project(似乎易于使用)。针对非管理员用户的MSI

This SO question/answer似乎是我正在寻找的解决方案,但是当我运行MSI文件时,它仍然需要管理员密码。输入管理员密码后,所有文件都将添加到用户的AppData文件夹中。那么为什么仍然需要管理员密码?我在这里错过了什么?在SO问题概述

9个步骤:

  1. 使用类型51自定义操作中InstallUISequence总是取消设置ALLUSERS(每用户选项)
  2. 文件必须写入只标准用户有权访问的文件夹。假设ALLUSERS始终设置为每个用户的设置,则可以使用可重定向的文件夹属性,但不能使用ProgramFilesFolder,因为它不会针对每个用户重定向。
  3. 将应用程序安装到LocalAppDataFolder下的某个位置。
  4. 所有注册表设置都应该写入注册表表格根目录列中的HKCU中。
  5. 翻转汇总信息流中字数属性的第3位,表示不需要凭证提示。
  6. 如果您有引导程序(通常名为setup.exe),请显示requestedExecutionLevel以运行asInvoker。
  7. 通过ICE验证,因为ICE检查每个用户和每个机器状态的混合不正确。
  8. 从标准用户帐户和提升的命令提示符处测试以确认行为。
  9. 提供用户关于软件包用户特定性质的文档,因为这在今天的应用程序安装中是非典型的。

这里是我做了什么:

第1步:安装项目 - >查看 - >用户界面 - >设置 “InstallAllUsersVisible” 为False(每SO接听)

第2步:在设置文件系统中,我添加了“用户的应用程序数据文件夹”,然后添加了“本地”,然后添加了“项目名称”,然后添加了“项目输出” - >“主输出”。我试图删除“应用程序文件夹”,但它表示它是必需的,不会被删除。

第3步:我相信这是我做过什么上面...

第4步:我还没有添加任何注册表项。这是必需的吗?

步骤5:根据SO回答,我下载了Orca并打开了MSI文件。然而,当我去查看 - >摘要信息,并寻找字数属性它不在那里。我浏览过所有表格,无法在任何地方找到它。

步骤6:在安装程序文件属性中取消选中“创建安装程序以安装必备组件”后,我不再有setup.exe文件。

第7步:我读了一些关于ICE验证的图片,但并不确定我需要在这里做什么。

现在跳过步骤8和9。

其他:在Orca环顾四周时,我注意到CustomAction表中的DIRCA_TARGETDIR仍然设置为程序文件夹,所以我将其更改为[AppDataFolder] [Manufacturer] [ProductName]。

+0

多年来,我撰写了许多office插件安装程序/博客文章。海事组织使用微星的全部重点是,你可以有一个引导程序来安装所有的前置程序并安装你的MSI每台机器。如果您的要求是每个用户/从不要求提升权限,为什么不使用ClickOnce?我可能不会在意它,但这是它的设计目的。 –

+0

我一直使用ClickOnce,但对于此插件,我无法使用VSTO(未安装在用户机器上)。所以我使用NetOffice并使用他们的“开发工具箱”创建了我的项目。当我在VS2015中打开它并转到项目属性时,“签名”选项卡下的“发布”选项卡丢失并且ClickOnce灰显。如果我能弄清楚如何使用ClickOnce,我会立即。 – pheeper

+0

嗯..我从来没有使用过SDK。也许有一个导入目标可以添加到他们生成的MSBuild项目文件中,以启用该目标。另一种选择是查看https://github.com/Squirrel/Squirrel.Windows ..不要误会我的意思,我喜欢MSI,我喜欢每台机器安装,但如果您的故事确实是每个用户,我认为还有其他的选择可能会更好。 –

基本上你应该计算出VSTO注册需要注册表项,并且只使用Visual Studio功能并忽略大多数旨在与WiX等工具一起使用的SO信息。

您的InstallAllUsers false对于每个用户的安装都是正确的。

要使用LocalAppDataFolder转到文件系统视图,右键单击该节点并添加一个特殊的文件夹,自定义文件夹。在文件夹的属性窗口中将[LocalAppDataFolder]放在DefaultLocation中。那么这就是你添加文件的地方。就是这样 - 不要搞乱DIRCA_自定义操作。

如果您取消选中先决条件按钮,您将获得一个MSI文件,这就是您安装的内容。如果您有先决条件,则需要安装setup.exe引导程序,然后安装MSI。

使用View-Summary Information在Orca中关闭UAC提示并检查UAC兼容框。请注意,Windows安装程序不会因为它是安装而违反系统安全规则,所以如果安装程序尝试执行不允许有限用户使用的操作,则会失败。