我使用NetOffice在VS2015中创建了一个Outlook加载项并以.NET 2.0为目标,现在我需要将其打包以供非管理员用户安装(它不需要管理员权限)。我通常使用ClickOnce但它缺少(假设我没有使用VSTO?),所以我下载并安装了Visual Studio 2015安装程序项目(看起来很容易使用)。
This SO question/answer似乎是我正在搜索的解决方案,但是当我运行MSI文件时,它仍然需要管理员密码。输入管理员密码后,所有文件都会添加到用户的AppData文件夹中。那为什么还需要管理员密码?我在这里失踪了什么?
SO问题中概述的9个步骤:
以下是我所做的事情:
第1步:设置项目 - >视图 - >用户界面 - >将“InstallAllUsersVisible”设置为False(根据SO回答)
步骤2:在设置文件系统中,我添加了“User's Application Data Folder”,然后是“Local”,然后是“ProjectName”,然后添加了Project Output - >主要产出。我试图删除“应用程序文件夹”,但它说它是必需的,不会被删除。
第3步:我相信这就是我上面所做的......
第4步:我没有添加任何注册表项。这是必需的吗?
步骤5:根据SO答案,我下载了Orca并打开了MSI文件。但是,当我去View - >摘要信息并查找单词计数属性它不存在。我查看了所有表格,无法在任何地方找到它。
步骤6:在安装文件属性中取消选中“创建安装程序以安装必备组件”后,我不再拥有setup.exe文件。
第7步:我在ICE验证中看到了几个问题,但我不确定我需要做什么。
暂时跳过第8步和第9步。
其他:在Orca环顾四周时,我在CustomAction表中注意到DIRCA_TARGETDIR仍设置为程序文件夹,因此我将其更改为[AppDataFolder] [制造商] [ProductName]。
答案 0 :(得分:0)
基本上,您应该确定VSTO注册所需的注册表项,并使用Visual Studio功能并忽略大多数旨在与WiX等工具一起使用的SO信息。
对于每用户安装,您的InstallAllUsers false是正确的。
要使用LocalAppDataFolder,请转到“文件系统”视图,右键单击该节点并添加一个特殊文件夹,即自定义文件夹。在文件夹的属性窗口中,将[LocalAppDataFolder]放在DefaultLocation中。然后,您可以在其中添加文件。这就是它 - 不要乱用DIRCA_自定义动作。
如果取消选中“先决条件”按钮,您将获得一个MSI文件,以及您安装的内容。如果您有先决条件,则需要一个setup.exe引导程序,它将安装,然后安装MSI。
在Orca中使用“查看摘要信息”关闭UAC提示,并检查“UAC兼容”框。请注意,Windows Installer并不违反系统安全规则,因为它是一个安装,因此如果安装程序尝试执行某些不允许限制用户的操作,则它将失败。