[wix-devs] Bal.wixext BA x64/ARM64 support

Rob Mensching rob at firegiant.com
Wed Jul 8 15:09:36 PDT 2020


1. I'm a little concerned about making Theme an enum. I guess we couldn't add a Theme without update the extension, so the enum could be enhanced at that time. But isn't it possible to provide your own custom theme in v3? 

2. I'm waffling between two options for including more payloads into the BA container:

2a. The "BootstrapperApplication='yes'" option - this is probably the easiest to slip into the system. I worry a bit about what happens if you create a payload group with mixed use of BootstrapperApplication, like:
   <PayloadGroup Id="Stuff">
     <Payload Source="bastuff.bmp" BootstrapperApplication="yes" />
     <Payload Source="notbastuff.bmp" />
   </PayloadGroup>

2b. Introduce "BootstrapperApplicationContainer" (or better name) element - this would allow child Payload and PayloadGroups elements and all resulting child Payloads (after flattening) would be BootstrapperApplication data. That avoids the problem above. We would then need to decide if "BootstrapperApplicationContainer" can be defined multiple times and silently merge or if there can be only one. We could also decide if BootstrapperApplication element should allow children or instead make developer use new "BootstrapperApplicationContainer" element.

If we went with 2b. I think I'd go with silent merging (like the UI element) and allow BootstrapperApplication to continue to act as a BootstrapperApplicationContainer. That should also be pretty minimally disruptive, I think.


-----Original Message-----
From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of Sean Hall via wix-devs
Sent: Wednesday, July 8, 2020 5:50 AM
To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Cc: Sean Hall <r.sean.hall at gmail.com>
Subject: Re: [wix-devs] Bal.wixext BA x64/ARM64 support

I created a WIP for this at
https://wixtoolset.org/development/wips/6209-multi-architecture-bal/. We need to decide how to expose the UX container in authoring.

On Thu, Jul 2, 2020 at 8:11 AM Sean Hall <r.sean.hall at gmail.com> wrote:

> Creating symbols isn't what I was looking for, I want the extension to 
> be able to get Core to take over the compilation such that all 
> children of the custom element are compiled as if they were children 
> of a BootstrapperApplicationRef. Basically I want an extension to be 
> able to declare that this element is a customized 
> BootstrapperApplicationRef where the extension provides the Id, but it 
> will probably also have custom attributes for that element as well. 
> Because of the need to set the Id on the BootstrapperApplicationRef, I 
> don't see how custom attributes for BootstrapperApplicationRef could accomplish the same thing.
>
> Today, Payloads and PayloadGroups under a Bundle are treated as loose 
> files for the bundle. If you could specify BootstrapperApplication="yes"
> that could work. Or even create new elements, like 
> BAPayload/BAPayloadGroup or BootstrapperApplicationPayload/BootstrapperApplicationPayloadGroup.
>
> On Thu, Jul 2, 2020 at 3:27 AM Rob Mensching <rob at firegiant.com> wrote:
>
>> It does seem reasonable to have mechanism to add Payload symbols the 
>> same way registry key symbols can be added.
>>
>> Alternatively, could the required data be added with custom 
>> attributes on the BootstrapperApplicationRef? (That might not be 
>> pretty enough)
>>
>> Exposing the UXContainer might be interesting as well but nothing 
>> comes to mind right away that would look good.
>>
>>
>> -----Original Message-----
>> From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of 
>> Sean Hall via wix-devs
>> Sent: Wednesday, July 1, 2020 12:01 AM
>> To: WiX Toolset Developer Mailing List 
>> <wix-devs at lists.wixtoolset.org>
>> Cc: Sean Hall <r.sean.hall at gmail.com>
>> Subject: Re: [wix-devs] Bal.wixext BA x64/ARM64 support
>>
>> I've run into a problem replacing the BootstrapperApplicationRef with 
>> a custom element. There's no way for the extension to support child 
>> Payload or PayloadGroupRef elements without parsing them itself. 
>> Should I add something to ParseHelper to parse the custom element's 
>> children as if they're children of a BootstrapperApplication element? 
>> Or should I add the ability to associate a Payload or PayloadGroup with the UX container?
>> Something else?
>>
>> On Sat, Jun 27, 2020 at 1:37 AM Rob Mensching <rob at firegiant.com> wrote:
>>
>> > That sounds very likely. I haven't been in BAs much for quite a 
>> > while now so none of it is fresh in mind.
>> >
>> > -----Original Message-----
>> > From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of 
>> > Sean Hall via wix-devs
>> > Sent: Thursday, June 25, 2020 4:33 PM
>> > To: WiX Toolset Developer Mailing List 
>> > <wix-devs at lists.wixtoolset.org>
>> > Cc: Sean Hall <r.sean.hall at gmail.com>
>> > Subject: Re: [wix-devs] Bal.wixext BA x64/ARM64 support
>> >
>> > It sounds like there should be a custom element, or probably 
>> > multiple
>> > - one for each built-in BA. If no one has any ideas about how it 
>> > should be, then I think this is going to be one of those times 
>> > where you have to implement it to see how it should be designed.
>> >
>> > On Fri, Jun 26, 2020 at 2:12 AM Bob Arnson via wix-devs < 
>> > wix-devs at lists.wixtoolset.org> wrote:
>> >
>> > > +1. The extension can be smarter about knowing the platform being 
>> > > +compiled
>> > > for. The "native" element maybe not so much.
>> > >
>> > > -----Original Message-----
>> > > From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf 
>> > > Of Rob Mensching via wix-devs
>> > > Sent: Thursday, 25 June, 2020 11:23
>> > > To: WiX Toolset Developer Mailing List 
>> > > <wix-devs at lists.wixtoolset.org>
>> > > Cc: Rob Mensching <rob at firegiant.com>
>> > > Subject: Re: [wix-devs] Bal.wixext BA x64/ARM64 support
>> > >
>> > > The bulk of the design effort for Burn in WiX v3.x went into the
>> engine.
>> > > The development experience was definitely second. In fact, when 
>> > > we started, bundles were created by a separate tool, not the 
>> > > candle/light
>> > pipeline.
>> > >
>> > > Managed code came even later and again the focus was spent on 
>> > > just making the interaction with the engine work. The development 
>> > > experience was definitely second.
>> > >
>> > > Same for wixstdba.
>> > >
>> > > So, don't necessarily lean on history here. If the experience can 
>> > > best be improved by enhancing Bal.wixext then that is absolutely 
>> > > the best way to do it. We didn't have Bal.wixext for a long time 
>> > > and, IMHO, underutilized in the name of expediency many times 
>> > > (Burn development got pretty hectic for a while at the end).
>> > >
>> > > -----Original Message-----
>> > > From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf 
>> > > Of Sean Hall via wix-devs
>> > > Sent: Thursday, June 25, 2020 3:16 AM
>> > > To: WiX Toolset Developer Mailing List 
>> > > <wix-devs at lists.wixtoolset.org>
>> > > Cc: Sean Hall <r.sean.hall at gmail.com>
>> > > Subject: [wix-devs] Bal.wixext BA x64/ARM64 support
>> > >
>> > > How do we want to do this? In the extension custom actions, 
>> > > there's a custom element like NativeImage in NetFx. Its compiler 
>> > > calls ParseHelper.CreateCustomActionReference which picks the 
>> > > right Id based on the architecture being compiled.
>> > >
>> > > For the BAs, there is no custom element. The user would manually 
>> > > have to set the BootstrapperApplicationRef Id based on which 
>> > > architecture they're compiling for.
>> > >
>> > > Do we want to create a new element to abstract this away? Should 
>> > > we repurpose the 
>> > > WixStandardBootstrapperApplication/WixManagedBootstrapperApplicat
>> > > ion Ho st elements for this? It seems like the Bal extension was 
>> > > originally put together with the goal to write as little C# code 
>> > > as possible.
>> > > _________________________________________________________________
>> > > ___ WiX Toolset Developer Mailing List provided by FireGiant 
>> > > http://www.firegiant.com/ 
>> > > _________________________________________________________________
>> > > ___ WiX Toolset Developer Mailing List provided by FireGiant 
>> > > http://www.firegiant.com/ 
>> > > _________________________________________________________________
>> > > ___ WiX Toolset Developer Mailing List provided by FireGiant 
>> > > http://www.firegiant.com/
>> > >
>> > ___________________________________________________________________
>> > _ WiX Toolset Developer Mailing List provided by FireGiant 
>> > http://www.firegiant.com/
>> >
>> ____________________________________________________________________
>> 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