[wix-devs] WIP 5386- Support MSI transactions

Nir Bar nir.bar at panel-sw.com
Sun Sep 25 12:43:35 PDT 2016


I made the following changes to the pull request:- Failed build if any x86 package precedes a x64 package in a transaction.
- Rollback test
- Test with x86 package before a x64 package 


I vote against bundle auto-repair as not all bundles support repairs; same goes for packages.
Auto-repair requires a bundle/package to at least persist all variables and properties which sometimes isn't desirable



---- On Fri, 23 Sep 2016 07:13:48 +0300 Sean Hall <r.sean.hall at gmail.com> wrote ---- 

Yeah, I saw the pull request this morning and knew I needed to actually 
look at this (the WIP's still in draft, I guess I have to start reading 
those...) 
 
I think this is worth a try, though I'm worried it's going to end up like 
DisplayInternalUI. If it were me, I would have rather spent my time 
getting the bundle to automatically repair the old bundle during rollback, 
but I admit I'm surprised by all the blowback on the automatic repair when 
a patch is uninstalled that was added in v3.9. 
 
How many other undocumented quirks are there besides the 32-bit/64-bit 
one? How is progress going to be reported during the commit phase? Should 
we fail the install if MsiBeginTransaction returns 
ERROR_ROLLBACK_DISABLED? I think we'll need build time checks like Heath 
mentioned. To keep things simple for the engine, I would restrict the 
packages to be only MSI/MSP packages. 
 
Regarding permanent packages, I don't see what's wrong with having those in 
the transaction. They're not technically installed until the transaction 
is committed, right? 
 
On Thu, Sep 22, 2016 at 8:00 PM, Heath Stewart <Heath.Stewart at microsoft.com> 
wrote: 
 
> Yes, mixing x86 and x64 packages has certain requirements. See 
> https://blogs.msdn.microsoft.com/heaths/2009/07/03/installation-sequence- 
> restrictions-for-multi-package-transactions/. If you go forward with the 
> feature request, you might either err during build or automatically create 
> separate transactions (the latter of which probably would be undesirable if 
> the dev opted for a transaction). 
> 
> Heath Stewart 
> Visual Studio, Microsoft 
> http://blogs.msdn.microsoft.com/heaths 
> 
> -----Original Message----- 
> From: wix-devs [mailto:wix-devs-bounces at lists.wixtoolset.org] On Behalf 
> Of Rob Mensching 
> Sent: Thursday, September 22, 2016 5:08 PM 
> To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org> 
> Subject: Re: [wix-devs] WIP 5386- Support MSI transactions 
> 
> Using an attribute to enable this seems like a great way to bring it in. 
> I'm not thrilled with the name "Transaction" for the attribute but we can 
> tweak that as better name comes up. 
> 
> Sean, given you've been deeper in Burn than anyone else in v4. What do you 
> think? 
> 
> _______________________________________________________________ 
> FireGiant | Dedicated support for the WiX toolset | 
> https://na01.safelinks.protection.outlook.com/?url= 
> http%3a%2f%2fwww.firegiant.com%2f&data=02%7c01%7cHeath. 
> Stewart%40microsoft.com%7c032034d4cd6b415d3e1008d3e345c5db% 
> 7c72f988bf86f141af91ab2d7cd011db47%7c1%7c0%7c636101861225612508&sdata= 
> 5jFHfcML3tqDNNyCQlcRS2DPdS0wGa5ypeujDsKdV8A%3d 
> 
> 
> -----Original Message----- 
> From: wix-devs [mailto:wix-devs-bounces at lists.wixtoolset.org] On Behalf 
> Of Nir Bar 
> Sent: Monday, August 29, 2016 10:57 PM 
> To: wix-devs at lists.wixtoolset.org 
> Subject: [wix-devs] WIP 5386- Support MSI transactions 
> 
> I created WIP#5386 to fix this scenario:Bundle has multiple MSI packages 
> During an upgrade: 
> Package#1 applies a major upgrade successfully 
> Package#2 starts an upgrade and fails 
> Package#2 rolls back successfully 
> Package#1 removed 
> The final result was that the target machine was left with the initial 
> bundle except package#1- which was definitely a bad rollback 
> 
> 
> The proposed WIP is to support MSI transactions by adding a 'Transaction' 
> attribute to RollbackBoundary elements. 
> If set to 'yes' (default is 'no'), the rollback boundary will start with 
> MsiBeginTransaction and terminate with MsiEndTransaction to either roll 
> back multiple packages or commit them. 
> 
> 
> Bob and and Rob have pointed out that MSI transactions are known not to 
> support a mixture of x86 and x64 packages and a general impression that MSI 
> transactions were buggy. 
> 
> 
> As we currently don't have a better way to fix that scenario, I would like 
> to give it a try and see if the alleged bugs in MSI transactions are 
> something that we can handle or at least document properly and let 
> packagers opt in to use in supported cases. 
> 
> 
> Comments are welcome 
> Does anybody know of other bugs in MSI transactions? 
> 
> 
> Thanks 
> 
> Nir Bar 
> Panel::Software Architecture and Development 
> 
> Mobile: +972-54-2490321 
> Mail: nir.bar at panel-sw.com 
> Web: https://na01.safelinks.protection.outlook.com/?url= 
> www.panel-sw.com&data=02%7c01%7cHeath.Stewart%40microsoft.com% 
> 7c032034d4cd6b415d3e1008d3e345c5db%7c72f988bf86f141af91ab2d7cd011 
> db47%7c1%7c0%7c636101861225612508&sdata=Y9Gm6wk5gUF6sypCa2E7wZDI0nL1Ne 
> qTjeikTpN03V0%3d 
> - C++ On Windows, Linux and Embedded Platforms 
> 
> - WiX &amp; InstallShield 
> - Build &amp; Continuous Integration 
> 
> ____________________________________________________________________ 
> WiX Toolset Developer Mailing List provided by FireGiant 
> https://na01.safelinks.protection.outlook.com/?url= 
> http%3a%2f%2fwww.firegiant.com%2f&data=02%7c01%7cHeath. 
> Stewart%40microsoft.com%7c032034d4cd6b415d3e1008d3e345c5db% 
> 7c72f988bf86f141af91ab2d7cd011db47%7c1%7c0%7c636101861225612508&sdata= 
> 5jFHfcML3tqDNNyCQlcRS2DPdS0wGa5ypeujDsKdV8A%3d 
> ____________________________________________________________________ 
> WiX Toolset Developer Mailing List provided by FireGiant 
> http://www.firegiant.com/ 
> 
____________________________________________________________________ 
WiX Toolset Developer Mailing List provided by FireGiant http://www.firegiant.com/ 









More information about the wix-devs mailing list