[wix-users] Controlling Updates of unversioned files

Edwin Castro egcastr at gmail.com
Tue Mar 9 12:21:28 PST 2021


Beware! Components are supposed to be immutable otherwise you run afoul of
the Component Rules.

I suspect there is already an existing versioned file that processes or
otherwise requires the existence of BYZ.p8z. I'd argue that the existing
versioned file is the correct versioned file to "own" the unversioned BYZ.p8z
file. This is especially true if the versioned file and the unversioned
file(s) are always updated together. There's no need to use a dummy
versioned file for this purpose. If you cannot identify this existing
versioned file, then I'd wonder how BYZ.p8z fits into the application but
that's for you to figure out.

If you really wanted BYZ.p8z in a separate component to allow you to update
it independently from the existing versioned file that
consumes/processes/requires it, then I'd recommend you use a versioned
"dummy" DLL that you can increase the version when BYZ.p8z changes. Perhaps
BYZ.p8z can be an embedded resource in that DLL?

--
Edwin G. Castro


On Tue, Mar 9, 2021 at 12:09 PM Todd Hoatson via wix-users <
wix-users at lists.wixtoolset.org> wrote:

> Edwin, thanks for the quick reply...
>
> > Alternatively, install BYZ.p8z in a component that uses a different
> versioned file as the KeyPath.
>
> This is an interesting idea.  After considering this, I can see 3 possible
> strategies:
>
> Basic:
>      Create a small dummy file which is versioned (i.e. a mostly-empty
> .exe/.dll?) with a name like ForceUpdate.exe
>      Make this file the KeyPath for its component
>      Whenever we need an unversioned file to be unconditionally copied,
>           Create a new version of the ForceUpdate.exe file
>           Move the File element for the unversioned file into the same
> component
>           Build the installer
>      At some (unspecified) point in the future
>           Move the File element for the unversioned file back to its own
> component
> Better:
>      Group unversioned files into logical sets
>      Create a small dummy file which is versioned (i.e. a mostly-empty
> .exe/.dll?) for each set
>      For each set, move the File elements for the unversioned files into
> the same component as the associated dummy file
>      Whenever we need an unversioned file to be unconditionally copied,
>           Create a new version of the dummy file for that set
> Best(?):
>      (Somehow) redesign our app to never distribute unversioned files
>
> The third strategy seems attractive, in an ideal world, as it does not rely
> on a kluge, but it would be a lot of work at this point.
>
> Any comments on these three strategies?  Would you recommend any others?
> Do you feel I have adequately understood your suggestion?
>
> thanks,
> Todd Hoatson
> Mobile: 763-291-3312
> Email:   todd.hoatson at gmail.com
> www.linkedin.com/in/toddhoatson
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>



More information about the wix-users mailing list