问题标签 [msi-patch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wix - 使用 Windows-Installer 了解 GUIDS、更新和补丁
我正在学习 Windows-Installer 和 Wix,并且有一些与它的工作原理相关的问题:
- 如果组件 GUID 更改,但组件中的文件相同,那么在重大升级时会发生什么?文件是否被替换?
- 如果从产品中删除组件,重大升级时相关文件会发生什么情况?卸载时会删除原始文件吗?
- 我是否正确地说主要升级将替换所有组件中的所有文件,无论文件的程序集版本是否已更改,并且在小更新和次要升级中,它仅在 GUID 相同的情况下替换文件,并且文件的汇编版本已增加?如果文件没有汇编版本,比如 aspx 页面怎么办?
- 假设在没有使用安装程序的情况下将产品部署在机器上。如果您随后创建了一个安装程序,组件中的文件与安装目录中的文件同名,那么如果您尝试安装,这些文件会发生什么情况?他们被替换了吗?
- 我是否正确地说,如果我使用诸如 heat 之类的工具来创建一个包含目录中所有文件的 xml 文件(例如网站),那么您必须保持 GUID 相同(手动或使用脚本) ,或者您只能进行重大升级?
windows-installer - MSP 不会安装所有更新的文件
如果我有两个 MSI 包:
包 A) 2.0.1234 (initial_product.msi) 包 B) 2.0.2300 (updated_product.msi)
我可以在 installshield 中创建一个补丁,从这两个生成一个 MSP 以将 2.0.1234 升级到 2.0.2300。奇怪的是,updated_product.msi 中的新文件没有安装。但是,正在更新的文件会得到更新。新文件位于 AlwaysInstal 功能下。
它本质上会导致非标准安装,因为您缺少新版本中的新文件,但是您的旧文件正在使用更新版本的 DLL 进行更新。
什么会导致它们无法安装?MSP 正在以默认值 REINSTALLMODE=omus REINSTALL=ALL 运行
谢谢
wix - 使用 msp 补丁添加丢失的文件
我创建了一个安装程序,部署到我们的测试环境,但由于缺少 dll(它未包含在 wsx 文件中)而出现错误。是否可以创建一个 MSP 补丁来运送丢失的 dll,还是简单地创建一个全新的安装程序更好?
我尝试了各种示例,但我不断收到此错误:
调试:错误 2356:无法在流中找到机柜:media1.cab。
windows-installer - 使用 MSI 构建补丁的方法
我在基于 Visual Studio 2010 构建的应用程序中工作,并且经常做一些小修复。
我需要一种方法来发送这些修复,比如补丁,我猜是一个 MSP 文件,而不是完整的MSI文件。我怎样才能做到这一点??有文章或链接吗?
wix - 使用补丁卸载 msi 安装
我有一个产品安装,该产品安装了一个可卸载的小更新补丁。如果我先卸载补丁然后安装产品,或者如果我在仍然安装补丁时选择卸载产品,有什么区别吗?产品和补丁安装是使用 WiX 工具创建的。
windows-installer - 在管理员安装中使用 MSI/MSP 时的多个快捷方式
我在尝试使用 MSI/MSP 安装和修补我们的产品时遇到了一个奇怪的问题。
它是一个两步过程:
我们正在尝试使用 MSI/MSP 来安装我们的产品。在此,用户要求系统管理员通过网络使用 GPO 安装产品 MSI。
结果:产品在用户计算机重新启动时成功安装。
用户请求系统管理员升级产品,系统管理员使用 MSP 通过网络使用 GPO 修补网络安装。
结果:在用户计算机重新启动时,产品已成功修补一个问题。
ISSUE: 为产品创建了多个快捷方式。我们的产品有版本号和产品名称(abc 1.0、abc 2.0)。所以每次应用 MSP 时,它都会在桌面和开始菜单上创建新的快捷方式。
有人可以帮助我如何删除现有的快捷方式并在用户桌面和开始菜单上拥有新的快捷方式吗?
wix - 使用 InstallShield 或 WiX 修补多个实例安装
我有一个在 InstallShield 12 中构建的项目。它是一个需要多次安装的 Web 应用程序,并且这些安装需要打补丁。
我可以在 WiX 和 InstallShield 中创建转换和补丁。
当我尝试从 InstallShield 修补转换后的安装时,我收到错误消息:
在 InstallShield 中,我尝试通过 Patch Design 选项卡将转换中的新产品代码添加到“目标产品代码列表”。这样做会导致补丁创建出错:
在 WiX (3.5) 中,我使用 dark.exe 将我的项目从 InstallShield 转换为 WiX。我已经取得了足够的进展,可以为转换安装补丁,但我收到了警告:
这是一个问题,因为我试图在补丁中运行 SQL 脚本,但是补丁并没有将我的 sql 文件插入到 cab 中。
我还通过 WiX 尝试了 .pcp 方法(WiX 3.0 之前的版本),并且只达到了我在 InstallShield 中所达到的程度。
到目前为止,我一直主要参考此页面来获取答案:http: //ysdevlog.blogspot.com/2011/08/revisited-multiple-instance.html
TL;DR:如何使用(最好)InstallShield 或在 WiX 中为多个实例安装生成补丁?
wix - WiX: Patch installer superseding previous versions (1.0.0 -> 1.0.1, 1.0.0 -> 1.0.2, 1.0.1 -> 1.0.2, aso.)
I am trying to provide a simple installer package (MSI) which I want to support with updates (patches) that supersede all previous patches. So I have a MSI V1.0.0 and 2 patches V1.0.1 and V1.0.2. The user should be able to just install the latest patch regardless which previous patches were already applied to the system. My project contains 2 features (Client and Server). The basis of the patch so is always the RTM package (HelloWorld 1.0.msi / HelloWorld 1.0.wixpdb).
The generation (build) of all patches work, so the update procedures 1.0.0 -> 1.0.1 and 1.0.0 -> 1.0.2 do, BUT when i try to update from 1.0.1 to 1.0.2 the patch fails with the following error message: "The upgrade patch cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade patch.". Even worse, when I run the 1.0.1 patch on a system where 1.0.2 is already installed, the patch overwrites the existing installation with an older version!? I am totally confused...
I also found several blog entries on the web about patching, but nothing that works with my supersede szenario.
wix patching code - "patch1.wxs":
patch 1 build script - "generate_patch1.bat":
wix patching code - "patch2.wxs":
patch 2 build script - "generate_patch2.bat":
windows - MSP 与 MSI 封装。哪个用于补丁?
目前我正在开发一个使用 MSI 包部署的项目。要修补程序,我们只需部署另一个与 MSP 相对的 MSI 安装程序包。这是解决此问题的有效/高效方法,还是我们应该部署 MSP 补丁包?我有过 MSI 但没有 MSP 的经验。我还将如何创建 MSP 补丁?我在互联网上搜寻,似乎找不到任何东西。
提前致谢!
windows-installer - MSP 文件如何包含回滚到原始版本的文件?
如果我有一个 MSP 文件AB.msp,它是从两个 MSI 文件A.msi(旧)和B.msi(新)创建的,很自然可以将AB.msp应用于A.msi所在的环境安装。
但是,假设在A.msi和B.msi之间还有几个 MSI 文件,比如C1.msi、C2.msi ......在这里,我不太明白AB.msp如何能够均匀地应用于安装这些Cn.msi文件之一的环境。AB.msp只是根据A.msi和B.msi之间的差异创建的。所以,正如我所想,它只知道两个 MSI 文件之间的区别。
例如,假设 A.msi 中的文件F1.exe首先在C3.msi中更改,然后在B.msi中回滚。那么AB.msp可能会认为A.msi和B.msi之间的文件F1.exe没有区别。因此它不能正确地应用于安装了C3.msi(具有不同的F1.exe)的环境。
但实际情况并非如此。实际上,上面的AB.msp(也许)适用于安装了Cn.msi文件之一的任何环境。我不知道该怎么解释。