[wix-devs] WIP 6257: Add DotNetRuntimeSearch to the NetFx extension for the detection of .NET Core/.NET 5 runtimes

Sean Hall r.sean.hall at gmail.com
Fri Jan 8 14:18:18 PST 2021

Thanks for writing this up.

> I'm leaning towards the NetCoreCheck approach because it already exists,
has been validated, and answers the valuable question of "will my app run?"
instead of "is this software installed?".

I realize that we were debating back and forth in 6264 about which of those
questions should be answered, but for 6257 it is most definitely "is this
software installed?". As I noted in the issue, if a newer version of one of
the packages is already installed and the bundle tries to install it then
it will fail. In this case, the DetectCondition for the ExePackage really
needs to be true when the package is already installed or a future version
is installed that will cause the current package to fail. Going beyond
file/registry checks isn't the right thing to do here.

I'm not saying that this proposal is a bad idea and shouldn't be done, I'm
just saying that this is not the correct solution for 6257. Where we go
from here really depends on what your goals are.

If you really are interested in solving 6257, then I think we need to work
with the other guys in https://github.com/dotnet/sdk/issues/15021 so that
all of us can agree on the proper way to detect that a .NET Core runtime is

On the other hand, if you think that people really want the answer to the
question "will my app run?" then I think this proposal should be for 6264
instead. 6257 should be about answering the question "is this software
installed?" for bundles and MSIs, and 6264 should be about answering the
question "will my app run?" for bundles and MSIs. The rest of this will
assume you wanted to go that direction.

The long term goal for the Util.wixext searches (like util:RegistrySearch)
was to be able to use them in both bundles and MSIs. We haven't done that
yet, but that's why they're compiled by the Util extension instead of by
the core toolset. Where I'm going with this is that you should be able to
use the new element that you proposed for bundles in MSIs as well.

I don't think that DotNetRuntimeSearch is a good name for an element that
is answering the question "will my app run?". Maybe

The element is missing the After attribute that is available for all

All enumeration values like RuntimeType should start with a lowercase
letter, so I think it would normally be aspnet, desktop, core.

We need to support all the supported platforms for .NET 5 - x86, x64, and

We could use these searches for the .NET Core packages until we have
implemented 6257.

These searches should definitely be in the NetFx extension. The
documentation you were referencing is end-user facing and is talking about
where the (v3) searches are, not where all searches are going to be.

Also I know you said NetCoreCheck was validated but as I said in 6264, I
don't believe that NetCoreCheck is properly answering the question "will my
app run?" because it's not taking into account roll-forward policies. For
example if an app compiled for 3.1 is configured for "Major" or
"LatestMajor", then it could run on a machine with only .NET 5. If it's
configured any other way it would not be able to run.  If you're truly
interested in answering that question, then NetCoreCheck needs parameters
to specify the app's roll-forward policy.

On Fri, Jan 8, 2021 at 2:35 PM James Parsons via wix-devs <
wix-devs at lists.wixtoolset.org> wrote:

> Hello everyone,
> I have created a WiX Improvement Proposal (WIP) to add a
> DotNetRuntimeSearch element to the NetFx extension for the detection of
> .NET Core/.NET 5 runtimes. Please review the proposal and provide any
> feedback you may have.
> web/6257-add-dotnet-runtime-search.html.md at develop · wixtoolset/web (
> github.com)<
> https://github.com/wixtoolset/web/blob/develop/src/Web/Static/documents/development/wips/6257-add-dotnet-runtime-search.html.md
> >
> Thank you,
> James
> ____________________________________________________________________
> WiX Toolset Developer Mailing List provided by FireGiant
> http://www.firegiant.com/

More information about the wix-devs mailing list