[wix-devs] Just when I thought ...

Bob Arnson bob at firegiant.com
Thu Jul 1 19:34:36 PDT 2021

See also commit 9735af72f3ec4dacd2df3c8c2e9704d148f00a59 from Monday, which solved my big build bother.

-----Original Message-----
From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of Sean Hall via wix-devs
Sent: Thursday, 1 July, 2021 20:05
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] Just when I thought ...

>From src\mywix4\src\test\burn\README.md:

## Building with local changes

The current build process will poison your NuGet package cache, so you may have to run the following command to clear it:

> nuget locals all -clear

This is a problem that was bad for me in the micro repos, and isn't any better in the mono repo.

> Why do they have to be publicly defined at all?

wcautil is a library that is used by all the WiX extensions but is also available for people to write their own native custom actions.

On Thu, Jul 1, 2021 at 6:42 PM Ron Martin via wix-devs < wix-devs at lists.wixtoolset.org> wrote:

> Just when I thought I had some significant issues behind me, they seem 
> to have popped up again.
> Here's the scenario:
> I modify a macro in wcautil.h at
> ...\wix4\src\libs\wcautil\WixToolset.WcaUtil\inc\wcautil.h.
> The modified macro is referenced by scauser.cpp at 
> ...\wix4\src\ext\Util\ca\scauser.cpp during the installation of 
> test.msi, which is produced when my test case is run. For this to 
> work, the code produced by compiling scauser.cpp must be embedded into 
> test.msi.
> The procedure that I thought was working involves using build.cmd at 
> ...\wix4\build.cmd to rebuild everything.
> Doing so also runs all the test cases, including mine. So far, so good.
> I install the version of test.msi that has thus been produced and the 
> windows installer log (which I have enabled in the registry) indicates 
> that my modification of the macro has had no effect.
> I open Util.wixext.sln at ...\wix4\src\ext\Util\Util.wixext.sln in 
> Visual Studio 2019 and examine scauser.cpp.
> I highlight the problematic macro reference and press F12 to see its 
> definition. The tab that opens is associated with a path outside my 
> repo:
> C:\Users\...\.nuget\packages\wixtoolset.wcautil\4.0.0-preview.0\build\
> native\include\wcautil.h
> The Solution Explorer lists this file as an external dependency of the 
> utilca project.
> There is no legitimate way to modify a published nuget package. I want 
> the code in my version of the repo to depend on its own copy of the 
> code. If there is a work-around for this, I have no idea what it is.
> It might require the creation of local nuget packages, the 
> restructuring of project files. or more.
> Even if I could make this work, consider the next step: I put in a 
> pull request for just source code that I've changed, leaving out any 
> behind-the-scenes magic that I might have used to make it work on my 
> computer. The next developer (or the CI robot) who tries to build the 
> develop branch will be right back where I am now.
> Extensions should not depend unnecessarily on published API's and 
> interfaces. I can't imagine a new extension depending on the macros 
> I'm trying to change. Why do they have to be publicly defined at all?
> If I'm inside the extension making changes and additions, I should be 
> able to change these definitions when it is appropriate or necessary 
> to do so.
> I could add a local header file, defining parallel macros with new 
> names and change all the references to the original macros to use the 
> new macros. This would leave the original macros unreferenced and ripe 
> for deletion at the time of the next release, but it would also leave 
> sub-optimal macro names that could be changed back to the originals in 
> the next release. This might be more maintenance debt than the project 
> should assume.
> I might just try this to see how far I can get. Any thoughts?
> Ron
> ____________________________________________________________________
> 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