0

是否可以创建仅提取数据但不创建卸载数据的 msi 安装程序?

例如:

  1. MSI 已嵌入 10 个文件。
  2. 用户安装 MSI,将 10 个文件复制到用户光盘。
  3. MSI 不会在用户计算机上创建卸载数据(添加/删除程序快捷方式等)
4

3 回答 3

2

您可以阻止卸载条目显示在“添加/删除程序”列表中。

但这与 Windows Installer 管理已安装包的方式没有太大关系。Windows Installer 程序包不是提供自解压、自执行档案的一种很好的机制。有几种专门为此而设计的产品(例如,WinZip、WinRAR、旧的 Package-for-the-Web)或各种非侵入式(非托管)安装程序(例如,NSIS、Visual Studio Bootstrapper Installer),它们可以让您更好地控制超过系统所处的状态。

关键点:成功安装后,Windows Installer 将在系统上存储有关安装的大量数据并对其进行管理,直到将其卸载。

于 2013-08-01T15:23:45.540 回答
1

是的。您必须设置该ARPNOREMOVE属性。

MSDN 文档:http: //msdn.microsoft.com/en-us/library/windows/desktop/aa367591%28v=vs.85%29.aspx

本教程中也有描述:http ://wix.tramontana.co.hu/tutorial/com-expression-syntax-miscellanea/add-or-remove-programs-entries

于 2013-08-01T14:30:05.273 回答
0

Windows 将创建卸载 ARP/注册表信息,并记住在 MSI 运行 PublishProduct 标准操作时安装了 MSI。如果您的 MSI 没有运行 PublishProduct 操作(条件设置为 0),则 MSI 可以安装文件/注册表项/服务/等,并且永远不会在计算机上将自己注册为“已安装”产品。它基本上变成了一个美化的 zip 文件。

将文件转储到文件系统的另一种方法是运行 MSI 的管理安装:msiexec /a foo.msi。这就像在不注册产品或运行任何自定义操作的情况下安装 MSI。

于 2013-08-09T03:58:38.863 回答