是否可以创建仅提取数据但不创建卸载数据的 msi 安装程序?
例如:
- MSI 已嵌入 10 个文件。
- 用户安装 MSI,将 10 个文件复制到用户光盘。
- MSI 不会在用户计算机上创建卸载数据(添加/删除程序快捷方式等)
您可以阻止卸载条目显示在“添加/删除程序”列表中。
但这与 Windows Installer 管理已安装包的方式没有太大关系。Windows Installer 程序包不是提供自解压、自执行档案的一种很好的机制。有几种专门为此而设计的产品(例如,WinZip、WinRAR、旧的 Package-for-the-Web)或各种非侵入式(非托管)安装程序(例如,NSIS、Visual Studio Bootstrapper Installer),它们可以让您更好地控制超过系统所处的状态。
关键点:成功安装后,Windows Installer 将在系统上存储有关安装的大量数据并对其进行管理,直到将其卸载。
是的。您必须设置该ARPNOREMOVE
属性。
MSDN 文档:http: //msdn.microsoft.com/en-us/library/windows/desktop/aa367591%28v=vs.85%29.aspx
Windows 将创建卸载 ARP/注册表信息,并记住在 MSI 运行 PublishProduct 标准操作时安装了 MSI。如果您的 MSI 没有运行 PublishProduct 操作(条件设置为 0),则 MSI 可以安装文件/注册表项/服务/等,并且永远不会在计算机上将自己注册为“已安装”产品。它基本上变成了一个美化的 zip 文件。
将文件转储到文件系统的另一种方法是运行 MSI 的管理安装:msiexec /a foo.msi。这就像在不注册产品或运行任何自定义操作的情况下安装 MSI。