WiX Bundle升级:在删除旧版本之前安装新版本的MSI
发布时间:2020-12-14 04:21:09 所属栏目:Windows 来源:网络整理
导读:我有一个 WiX bundle安装 MSI并检查是否安装了.NET.安装捆绑包(和安装程序)时,一切都按预期工作. 我的问题是捆绑包升级.在升级中,捆绑包首先安装MSI的v_Next,然后取消安装v_revious的MSI. 我该如何更改此订单?我希望在升级中,在安装v_Next之前卸载MS_的v_Pr
我有一个
WiX bundle安装
MSI并检查是否安装了.NET.安装捆绑包(和安装程序)时,一切都按预期工作.
我的问题是捆绑包升级.在升级中,捆绑包首先安装MSI的v_Next,然后取消安装v_revious的MSI. 我该如何更改此订单?我希望在升级中,在安装v_Next之前卸载MS_的v_Previous. 以下是我的包: <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"> <Bundle Name="MyProductName" Version="1.0.0.0" Manufacturer="MyCompanyName" UpgradeCode="4abf3f67-1234-35b1-b2c1-dd7649b60e1d"> <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"> <bal:WixStandardBootstrapperApplication SuppressOptionsUI="yes" LicenseFile="License.rtf" ThemeFile="Theme.xml" LogoFile="MyProductName.png" /> <Payload Name="BootstrapperCore.config" SourceFile="BootstrapperCore.config"/> <Payload SourceFile="NetfxLicense.rtf"/> </BootstrapperApplicationRef> <Chain> <PackageGroupRef Id="Netfx4Full"/> <MsiPackage Compressed="yes" SourceFile="$(var.SolutionDir)SetupMyProductName.msi" Vital="yes"> </MsiPackage> </Chain> </Bundle> <Fragment> <WixVariable Id="WixMbaPrereqPackageId" Value="Netfx4Full" /> <WixVariable Id="WixMbaPrereqLicenseUrl" Value="NetfxLicense.rtf" /> <util:RegistrySearch Root="HKLM" Key="SOFTWAREMicrosoftNet Framework SetupNDPv4Full" Value="Version" Variable="Netfx4FullVersion" /> <util:RegistrySearch Root="HKLM" Key="SOFTWAREMicrosoftNet Framework SetupNDPv4Full" Value="Version" Variable="Netfx4x64FullVersion" Win64="yes" /> <PackageGroup Id="Netfx4Full"> <ExePackage Id="Netfx4Full" Cache="no" Compressed="no" PerMachine="yes" Permanent="yes" Vital="yes" SourceFile="$(var.SolutionDir)packagesdotNetFx40_Full_x86_x64.exe" DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=164193" DetectCondition="Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x64FullVersion)"/> </PackageGroup> </Fragment> </Wix> 谢谢Rob的答案.我试图这样做,但它不起作用(我肯定会遗漏一些东西)……这就是我在MSI中所拥有的: <Product Id="*" Name="MyProductName" Language="1033" Version="1.0.0.0" Manufacturer="MyCompanyName" UpgradeCode="aa027fd0-5111-1236-9af6-55581a588123"> <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> <MajorUpgrade DowngradeErrorMessage="A newer version of MyProductName is already installed." AllowDowngrades="no"/> <MediaTemplate /> <Feature Id="ProductFeature" Title="MyProductName" Level="1"> <ComponentRef Id="ApplicationShortcut" /> <ComponentGroupRef Id="AllFiles" /> </Feature> </Product> 如果我运行v_previous MSI然后运行v_Next MSI(单独,不在捆绑包中),我将同时安装,因此不会执行升级.我究竟做错了什么? 没关系,MajorUpgrade正在运作.我的版本编号在vNext MSI中是错误的.我现在还需要添加次要的升级支持.
升级的软件包总是在今天卸载**.要在v_Next.msi之前删除v_Previous.msi,请将v_Next.msi主要升级(请参阅
MajorUpgrade element)v_Previous.msi.
**我认为有一个功能请求允许其他展示位置,但还没有人实现. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 使用InstallAnywhere更改文件夹权限
- consul怎么在windows下安装
- 在Windows 8中给Java应用程序一个Metro Look and Feel
- 如何遍历Windows批处理文件中的文件夹树/子树?
- 在Microsoft Sql Server Management Studio中测试存储过程
- wpf – 企业应用程序如何适合Metro风格(WinRT)UI?
- windows – 如何使用简单的批处理文件解压缩和覆盖现有文件
- windows下编译支持https的curl静态库
- 在Windows和Mac OS X之间的Dropbox上共享Eclipse目录
- windows-server-2008-r2 – 为什么我不应该使用Windows Ser