Wix / MSI – 如何避免安装相同的MSI两次
我的安装程序用WiX语言编码.支持主要升级机制.一个特殊的要求是同一MSI文件将无法安装两次.
现在是棘手的部分:如果用户安装然后再次尝试安装(UI模式)安装程序进入维护模式,一切正常(更改/修复将显示禁用). 但是当以静默方式安装为用例状态时 msiexec.exe / i installer.msi / qn 第二次安装将正常进行安装(我们不希望这样做) 有些事情要注意的是: 在第二次安装的日志文件中,将跳过序列“FindRelatedProducts”(如微软文档http://msdn.microsoft.com/en-us/library/windows/desktop/aa368600(v=vs.85).aspx中的状态) 另外我研究一下这里http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/UpgradeVersion-is-not-detecting-the-same-version-preventing-downgrades-td5875840.html有很好的信息,声称对于这种情况我们可以使用已安装的属性来检测是否已经安装了产品… 但是,我被困在这里:因为我必须避免安装与当前版本相同的版本,并允许升级更大,在WiX中如何实现? 谢谢你的帮助!
这是无法做到的.
尝试安装已安装的软件包时,Windows Installer会自动执行修复.没有升级过程. 此外,维护过程是基于ProductCode触发的.当第二次Windows Installer看到它的ProductCode已经安装并进入维护模式时启动包.它不以任何方式升级. 升级仅在更改ProductVersion和ProductCode时使用. 编辑: 为了防止在维护模式下进行自动修复,您可以尝试: > write a win32 DLL custom action,检测产品是否安装 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2012 – 存储池基本上是JBOD的另一个术语吗
- windows-server-2008-r2 – 应用共享权限删除本地文件夹win
- windows-8 – 具有无法捕获的崩溃的WinJS应用程序
- DLL – 如何在Windows上的D语言程序中使用SQLite库?
- 如何以编程方式获取DLL依赖关系
- windows-server-2008 – Windows 2008忽略了Gratuitous ARP
- windows – 如何杀死当前正在运行的所有批处理文件
- .net – 何时将代码分成新的程序集(DLL)
- skype – 您的团队在远程设置中如何协同工作?
- 如何在Windows Powershell中区分两个文件夹?
- 备份 – VirtualBox“导出设备”功能是否也导出快
- Windows文件和文件夹“属性”A或C.
- windows-server-2008 – 小型企业需要Active Dir
- 将Windows窗体属性绑定到C#中的ApplicationSetti
- windows10 Ubuntu子系统下卸载Mysql重装
- windows-7 – Windows 7中的命令行照片打印
- windows-server-2008 – 在Windows Server 2008上
- active-directory – Microsoft是否在Server 200
- windows-server-2008-r2 – 如何验证Windows Ser
- 无法在Windows 8.1上使用WDS和应答文件执行无人参