使用 msp 补丁添加丢失的文件
我创建了一个安装程序,部署到我们的测试环境,但由于缺少 dll(它未包含在 wsx 文件中)而出现错误。是否可以创建一个 MSP 补丁来发送丢失的 dll,或者是否最好简单地创建一个全新的安装程序?
我尝试了以下各种示例,但我不断收到此错误:
调试:错误 2356:无法在流中找到压缩包:media1.cab。
I created an installer, deployed to our test environment and got an error due to a missing dll (it was not included in the wsx file). Is it possible to create a MSP patch to ship the missing dll or is it better to simply create a whole new installer?
I tried following various examples but I keep getting this error:
DEBUG: Error 2356: Couldn't locate cabinet in stream: media1.cab.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
补丁可以做更新的 MSI 可以做的任何事情,但它只是一种打包和交付机制,以更紧凑的方式交付更新。因此,您实际上必须创建一个完整的新版本的设置,然后才能将此新更新打包为补丁。
重要提示:在完整升级正常运行之前,根本不需要花时间测试补丁。这完全是浪费时间。它只会产生神秘的错误,并且是现实世界中非常常见的时间消耗。
除非您之前的设置已经投入生产,因此是“野外”,否则我不会在补丁上浪费时间。补丁需要大量时间来创建和更多时间来测试 - 这会增加很多风险和复杂性强>,它只是为了提供一种方便的方式来提供小的更新(例如您所描述的内容),而无需分发可能巨大的新 MSI 文件。使用补丁进行 UAT 或 QA 测试并不常见,除非您的产品非常庞大并且需要很长时间才能安装。
我个人觉得MSI在补丁方面完全失败了。它应该是一个易于使用的增值功能,但它本身已经成为一个非常复杂的问题。
A patch can do anything an updated MSI can do, but it is merely a packaging and delivery mechanism that delivers an update in a more compact way. Hence you must actually create a full new version of your setup to be able to then package this new update as a patch.
Important: spend no time at all testing a patch before the full upgrade is working properly. This is a complete waste of time. It creates only mysterious errors and is a very common real-world time drain.
Unless your previous setup has gone to production and hence is "out in the wild", I wouldn't waste my time with a patch. Patches require a lot of time to create and even more time to test - there is a lot of added risk and complexity, and it is only intended to be a convenient way to deliver small updates such as what you describe without having to distribute a potentially huge, new MSI file. It is not common to use patches for UAT or QA testing unless your product is really huge and takes ages to install.
Personally I feel that MSI has failed entirely when it comes to patching. It should be an easy to use, value added feature, but it has become a hugely complicated, problematic issue in its own right.
是的,您可以通过补丁添加丢失的文件。也许这篇文章会有所帮助: http://wix.sourceforge.net/manual-wix2/patch_building .htm
创建补丁时,您应该始终修改现有的安装程序。您不需要从头开始创建新的安装程序。另外,切勿从新版本中删除资源。对于补丁,您应该修改或添加资源。
关于错误 2356,原始安装似乎已损坏。您可以先尝试修复旧版本,然后再应用补丁。
Yes, you can add a missing file through a patch. Perhaps this article will help: http://wix.sourceforge.net/manual-wix2/patch_building.htm
When creating a patch you should always modify your existing installer. You don't create a new installer from scratch. Also, never remove resources from the new version. For a patch you should either modify or add resources.
Regarding error 2356, it seems like the original installation is somehow corrupted. You can try repairing the old version before applying the patch on it.