为所有用户从 VS.NET MSI 安装程序项目安装快捷方式

2023-12-11

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

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

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

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

真让人抓狂。我正在使用 Visual Studio 2010。我想我只是在突破安装程序的极限......想象一下。我的安装是一个桌面应用程序 (winforms),它具有自定义安装程序操作和类,可根据用户在安装过程中所做的选择(自定义 UI 安装程序屏幕)将一些值写入设置文件。

有任何想法吗?


MSDN 网站解释了如何执行此操作MSI 安装所有用户

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

Settings

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

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

InstallAllUsersVisible 属性

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

Settings

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

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

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

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

我刚刚为您完成的快速搜索中还有一些其他附加说明可供尝试。

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

您将需要 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 并在每次重新构建时重新添加设置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为所有用户从 VS.NET MSI 安装程序项目安装快捷方式 的相关文章

  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • Unix网络编程澄清

    我正在翻阅这本经典书籍Unix网络编程 https rads stackoverflow com amzn click com 0139498761 当我偶然发现这个程序时 第 6 8 节 第 179 180 页 include unp h
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 安装适用于 Windows 7 的 Ruby on Rails(最新)

    我是一名设计师 而不是一名编码员 并且在首次安装时遇到了问题 我下载了 Rails 1 8 6 和 Instant Rails 我打开控制台并尝试更新 gem 那里没有任何作用 我想我会删除所有内容并重新开始 因为我确信我现在破坏了某些东西
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 如何在 Linq 中获得左外连接?

    我的数据库中有两个表 如下所示 顾客 C ID city 1 Dhaka 2 New york 3 London 个人信息 P ID C ID Field value 1 1 First Name Nasir 2 1 Last Name U
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub

随机推荐