我发布了一系列测试版产品,用户在安装“最终公开发布”之前必须将其删除。
在这种情况下,我通常会进行重大升级,但在这种情况下,由于产品的性质,主要升级太难实现。未来的升级从“干净的基线”开始会更加容易。
是否有内置的方法来刻录以检测并通知用户必须卸载以前安装的版本?
或者我是否需要将包添加到执行检查的包中,显示消息并使包失败?
如果它与答案相关,则所有以前的版本都具有相同的major.minor.patch版本。只是改变了构建号码,例如1.0.0.1,1.0.0.20,1.0.0.50;最终版本是1.0.0.100。
答案 0 :(得分:0)
假设您产品的MSI中的升级表是按照“正常”用法构建的,您可以使用OnDetectRelatedMsiPackage回调到您的BA来评估找到的每个安装。您需要在该回调中调用MsiGetProductInfo()API(或等效的DTF?)来获取版本字符串,然后解析该字符串以确定安装的版本号是否足够小以阻止/失败您的安装。
请注意,Windows Installer中的主要升级机制仅检查版本quad的前三部分,因此Windows Installer本身无法区分1.0.0.1和1.0.0.100。你可能有一个问题需要与之抗衡。