.NET 5.0 and Wine
Esme Povirk (they/them)
esme at codeweavers.com
Wed Aug 26 10:26:37 CDT 2020
Microsoft has announced a feature complete preview of .NET 5.0:
I thought I would pre-empt the inevitable questions about what this
means for Wine and Wine Mono. The answer is, not very much.
Summary: Wine Mono will only replace .NET version 4.x and earlier. For
.NET 5.0 and later in Wine, the official binaries from
https://dotnet.microsoft.com/download/dotnet/5.0 should be used. The 2
runtimes can be installed at the same time and will function
.NET 5.0 does not interact with earlier versions of .NET at all, nor
is it really part of the OS. It is a runtime that can be installed
globally, or packaged with an individual application, similar to how
the Mono runtime functions on Windows now. I have been told that it
works fine in Wine. It's also (mostly) open source.
Since .NET 5.0 breaks compatibility with earlier versions (winforms
has removed APIs and changed the default font which breaks some
application layouts), is open source, works independently from .NET
4.x and earlier, already works in Wine, and has a build system very
different from the one used in Wine Mono, it does not make sense to
try to replace it with Wine Mono. Should Wine require any changes that
upstream does not wish to merge, we will need our own fork, otherwise
we can simply use the official binaries.
One reason to fork it might be to remove dependencies on proprietary
components, most notably PresentationNative_cor3.dll, and Microsoft
SDK build tools. Some of the work I've been doing with WPF may help
with that, but it's still incomplete and would need to be
forward-ported to the current version of WPF.
For folks who want to use Wine to port Windows applications using .NET
5.0 winforms or wpf to other platforms, I am not aware of anything in
the .NET 5.0 license that would get in the way of this use case.
More information about the wine-devel