hangover icon indicating copy to clipboard operation
hangover copied to clipboard

Wine mono or dotnet

Open lr1729 opened this issue 4 years ago • 2 comments

Would it be possible to install wine mono or dotnet4.5? Running /hangover/build/wine-host/loader/wine64 /hangover/build/qemu/x86_64-windows-user/qemu-x86_64.exe.so uninstaller to install wine mono.msi gives Failed to load "uninstaller", last error 126. Is there a way to install dotnet via winetricks?

lr1729 avatar Apr 27 '20 17:04 lr1729

Microsoft .NET can be installed with hangover, but it does not run. I have used it to run the 32 bit .net installer (up to version 4.6.2) on a 64 bit only Wine on MacOS Catalina. This achieved its purpose because then 64 bit .NET could run natively.

I don't think you'll have much joy with .NET on an ARM box at the current point. I haven't even looked at what is necessary to run the actual .NET virtual machine, but at very least qemu's detection of self-modifying and JIT generated code is not currently hooked into Wine on the host side. Qemu needs to be able to call VirtualProtect to mark pages containing x86 code read-only and properly interpret write access exceptions to know that it has to re-translate the modified code. And that's just one of the corner cases. I am sure there are some other bits in the virtual memory handling, stack setup, etc that will break in very interesting ways.

I don't know about Wine-mono. The first thing to do is port it to arm/aarch64. This won't run .NET apps with native code components but it should be able to run pure .NET programs without hangover.

The other approach would be to install x86 wine-mono into the prefix and have all Wine libs that call it (mscoree, and I am sure there are some others too) built as x86/x64 PE libs. This will be slower, more complicated, but should handle programs that have their own native code pieces.

stefand avatar Apr 27 '20 19:04 stefand

Wine Mono can be installed by now, I just have no .net binary to test it

AndreRH avatar Mar 01 '24 21:03 AndreRH