[wix-devs] WIP 5386- Support MSI transactions

Sean Hall r.sean.hall at gmail.com
Thu Sep 22 21:13:48 PDT 2016


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 & InstallShield
>    - Build & 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/
>


More information about the wix-devs mailing list