【问题标题】:Install shortcut from VS.NET MSI installer project for ALL USERS从 VS.NET MSI 安装程序项目为所有用户安装快捷方式
【发布时间】:2012-01-12 19:42:27
【问题描述】:

我在这里搜索和搜索。我尝试了以下方法,但没有成功:

将项目安装程序属性设置为 - InstallforAllUsers(不记得确切的名称),但这确实将快捷方式添加到所有用户的菜单,但只有安装应用程序的用户才能运行它。其他用户收到有关无法安装或其他问题的 SysWOW64 错误。

再次设置 [DesktopFolder] 或 [AllUserStartMenu],我可能没有正确的这些属性名称,但我从一些已在此处发布的用户那里关注它们。为这些属性赋予 ALLUSERS 的值。安装程序在安装过程中失败并显示“无法找到网络位置 1”或类似的内容。

使用 ORCA 编辑 MSI 文件并添加要为所有用户安装的属性,但在 ORCA 内部失败并出现无法添加属性的错误。

这很疯狂。我正在使用 Visual Studio 2010。我想我只是在推动安装人员的极限……想象一下。我的安装是一个桌面应用程序 (winforms),它具有自定义安装程序操作和类,可根据用户在安装期间所做的选择将一些值写入设置文件(自定义 UI 安装程序屏幕)。

有什么想法吗?

【问题讨论】:

    标签: c# visual-studio installation


    【解决方案1】:

    说明如何执行此操作的 MSDN 站点 MSI Install All Users

    部署项目的 InstallAllUsers 属性决定 应用程序是为计算机的所有用户安装还是仅安装 对于执行安装的用户。 InstallAllUsers 属性 可以在部署项目时在属性窗口中设置 在解决方案资源管理器中选择。

    设置

    False - 仅为当前用户安装应用程序 并且不会对计算机的其他用户可见(默认)。

    True - 将为所有用户安装该应用程序。

    InstallAllUsersVisible 属性

    安装文件夹用户的 InstallAllUsersVisible 属性 界面对话框确定Install MyApplication是否为 您自己或使用此计算机标签和相应的任何人 安装过程中会出现“所有人”和“只有我”选项按钮。这 InstallAllUsersVisible 可以在属性窗口中设置当 在用户界面编辑器中选择了安装文件夹节点。

    设置

    True - 为您自己或任何使用该应用程序的人安装 MyApplication 此计算机标签和相应的“所有人”和“只有我”选项 安装过程中会显示按钮,用户可以选择 确定安装方法。

    False - 为您自己或任何人安装 MyApplication 使用此计算机标签和相应的“所有人”和“只有我”选项 安装过程中按钮将不可见。”

    ================================================ =============

    以下是您为每个人默认安装的分步操作 没有为您的用户显示单选按钮选项 安装您的产品: 1. 在您的解决方案资源管理器中单击您的设置项目。 2. 查看属性窗口并设置属性 InstallAllUsers 是真实的 3. 单击解决方案资源管理器工具栏中的图标 弹出工具提示“用户界面编辑器” 4. 单击出现的面板中的“安装文件夹”项。 5. 查看属性窗口并将 InstallAllUsersVisible 设置为 是假的。 6. 重建您的解决方案。

    我刚刚为您完成的快速搜索可以尝试其他一些额外的注释..

    我在网上搜索这个问题的答案,我发现答案隐藏在 Microsoft 的网站上。

    您将需要来自 Microsoft 的 Orca.exe。它是一个 MSI 数据库编辑器。 (http://msdn.microsoft.com/library/de...p/orca_exe.asp) 我看到获取此文件的唯一方法是安装 Windows Installer SDK (http://www.microsoft.com/ msdownload/...msdk/sdkupdate)。

    在您完成构建 .MSI 文件后,您需要使用 Orca.exe 打开它。打开后,转到“属性”表。从菜单中,单击“表”,然后单击“添加行”。对于“属性”字符串,输入“ALLUSERS”,对于值,输入“1”或“2”。输入“1”将导致安装程序尝试将快捷方式添加到“所有用户”,如果当前用户没有权限则失败,“2”将导致安装程序先尝试“所有用户”,然后进行故障转移到他们的个人文件夹。详情-http://msdn.microsoft.com/library/de...stallation.asp

    我在“用户的桌面”和“用户的开始菜单”上对此进行了测试,并且两者都适用。警告:如果您重新构建 MSI 文件,它将删除“ALLUSERS”属性条目,因此您必须使用 Orca.exe 并在每次重新构建时重新添加设置。

    【讨论】:

    • 正如我在原始问题中所指出的,我已经尝试了这两个建议,但都没有奏效。
    【解决方案2】:

    我知道这是一个古老的问题,但我以前做过这个,当我最近不得不再做一次时,我忘记了如何做。由于我的直觉是在深入研究旧的安装程序项目之前先看看 SO,我想我最好把答案贴出来。

    我是这样实现的:

    1. 在您的启动条件中添加注册表搜索:

      • (名称):搜索所有用户程序菜单
      • 属性:ALLUSERSMENU
      • RegKey:SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell 文件夹
      • 根目录:vsdrrHKLM
      • 价值:通用程序
    2. 在文件系统编辑器中创建一个新的目标文件夹并利用您的新属性:

      • (名称):所有用户程序菜单
      • 始终创建:真
      • 默认位置:[ALLUSERSMENU]\YourMenuHere
      • 属性:MENULOCATION
      • 传递:错误
    3. 将快捷方式放在新文件夹中。

    就是这样。

    以下是您可以在 Windows XP 注册表中访问的文件夹路径供参考:

    对于 Windows 7:

    【讨论】:

      【解决方案3】:

      请参阅 MSDN 上的 ALLUSERS 属性。第一条评论中的链接已损坏。

      http://msdn.microsoft.com/en-us/library/aa367559%28v=vs.85%29.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多