dotnet / sdk

Core functionality needed to create .NET Core projects, that is shared between Visual Studio and CLI
https://dot.net/core
MIT License
2.73k stars 1.07k forks source link

Application executable is not marked as Windows 10 compatible in the default manifest #12904

Open jkotas opened 4 years ago

jkotas commented 4 years ago

The manifest of self-contained apps does not contain Windows 10 supportedOS element. It means that self-contained applications run with compatibility shims by default.

The proposal based on the offline discussion:

Related:

agocke commented 4 years ago

@mateoatr Could you take a look at this?

agocke commented 4 years ago

Moving to SDK since the work should be here, and moving to .NET 6 since we won't get to this in the 5.0 time frame.

agocke commented 3 years ago

Moving this to backlog for the moment, but I'd be interested in taking this for 6.0.2xx -- it just requires some coordination with Roslyn.

miloush commented 1 year ago

@jkotas @agocke Can I ping the situation on this? I would be interested not only to have Windows 10 support in the default manifest but also comctl version 6 (to avoid having to do the Winforms manifest gymnastics e.g. in WPF applications), are there any compatibility concerns about that? I would think this could be done only starting with a particular version, like net9.0-windows.

agocke commented 1 year ago

No update yet. No one on the team currently has context on the issue so it would take some time to get ramped up, and it hasn't been high enough priority.

Not currently optimistic about it making .NET 8.

jkotas commented 1 year ago

If your app needs a custom Win32 manifest, there is a simple workaround:

miloush commented 1 year ago

Thanks, I think it would be good to have the default manifest updated. Doesn't have to be for .NET 8 obviously, but comctl6 is supported on all Windows versions supported by .NET, and Windows 10 is the only supported OS since .NET 7. Not quite sure why that is not reflected in the default manifest. For WPF we could add a build task to patch the default manifest during compilation, but I was interested first why shouldn't everyone simply have a better manifest out of the box.