bottlesdevs / Bottles

Run Windows software and games on Linux
https://usebottles.com
GNU General Public License v3.0
6.49k stars 276 forks source link

[Bug]: dotnet48 not setting up registry entries properly #2828

Open daegalus opened 1 year ago

daegalus commented 1 year ago

Describe the bug

On the Affinity forums , there is an effort to get it working on Linux, which is mostly successful.

But we found that if you use the dotnet48 from the dependencies section of bottles, something doesn't quite work with the registry entries and we get a non working install.

Using winetricks on the bottle for dotnet48, everything installs correctly and it works.

Just want to make it clear, that this is not related to anything specific to Affinity, and its something to do with how the installers for dotnet48 are handled.

To Reproduce

Reproducing requires a custom build of wine for Affinity that the source is in the forums

I have made this wine builder docker image for ease of building new images https://github.com/daegalus/wine-builder if it helps reproduce

  1. Create bottle
  2. Install dotnet48 and corefonts
  3. Use custom ElementalWarrior wine build and WinMetadata from windows
  4. Install affinity photo
  5. Run it, fails
  6. Install dotnet48 from winetricks
  7. Works

Alternative untested option

  1. Create bottle
  2. Install dotnet48
  3. Backup registry
  4. Install dotnet48 from winetricks
  5. Diff registry with backup.

Package

Flatpak from Flathub

Distribution

Fedora 37, Arch Linux, etc.

Debugging Information

Official Package: true
Version: '51.5'
DE/WM: gnome
Display:
    X.org: true
    X.org (port): :0
    Wayland: true
Graphics:
    vendors:
        amd:
            vendor: amd
            envs:
                DRI_PRIME: '1'
            icd: /usr/lib/x86_64-linux-gnu/GL/vulkan/icd.d/radeon_icd.x86_64.json:/usr/lib/i386-linux-gnu/GL/vulkan/icd.d/radeon_icd.i686.json
    prime:
        integrated: null
        discrete: null
Kernel:
    Type: Linux
    Version: 6.2.8-300.fc38.x86_64
Disk:
    Total: 16780406784
    Free: 16780259328
RAM:
    MemTotal: 31.3GiB
    MemAvailable: 23.5GiB
Bottles_envs: null

Troubleshooting Logs

Don't have the exact error, but usually something related to `mscoree.dll`

Additional context

No response

wanesty commented 1 year ago

if i remember from my previous troubleshoots, you can get it to work by installing dotnet35, dotnet35sp1, dotnet40 and dotnet48, which uh... ugh....

so yes, installing dotnet48 from bottles dependencies manager does not write enough regkeys for affinity to see dotnet40-48 as installed.

i'm guessing that maybe bottles use a different dotnet40 & dotnet48 installer than winetricks ? or maybe it deletes too many regkeys while uninstalling Mono ?

edit :

Alternative untested option

Create bottle Install dotnet48 Backup registry Install dotnet48 from winetricks Diff registry with backup.

i did test it and yes, the issue doesn't come from content of the installer, the issue really is regkeys

Extarys commented 11 months ago

A fantastic alternative could also be to make ElementalWarrior Wine fork as part of Bottles: https://codeberg.org/Wanesty/affinity-wine-docs

I tried compiling it, but it failed. I'll retry later. But having this Wine fork bundled/selectable directly into Bottles would make it so launching Affinity is a piece of cake! (Create Bottles, download runner, select runner for this bottle, magic)

flexagoon commented 3 months ago

Could someone please provide a list of missing registry keys?

wanesty commented 3 months ago

here's an archive of both .reg files: affinity-photo3-wine9.13-part3-.tar.gz

they both using the same custom build of wine as a "runner", compiled with the new experimental wow64 method (they really need to give it a name istg)

both clean install with nothing other than dotnet 48 installed (and then wine version set back to win10)

wanesty commented 3 months ago

okay i just tried installing it on bottles with dotnet48 installed in the dependencies tab, it installed and launched, which i guess is an improvement and it seems to run fine (as well as without bottles) but attempting to create a new file crashes affinity :p (regression compared to without bottles)

flexagoon commented 3 months ago

@wanesty yesterday I tried installing affinity with your guide using rum and it launched but when I created a new file the entire app just went black, so maybe it's a regression in Affinity?

wanesty commented 3 months ago

the entire app just went black

that was probably a matter of changing the render from gl to vulkan or the other way around like mentioned on the troubleshooting page

flexagoon commented 3 months ago

@wanesty nope, it happened with both renderers.

wanesty commented 3 months ago

L graphic drivers ig joke aside it seems like it can depend a lot machine to machine and distro to distro due to the shipped drivers and configs

anyhow, feel free to talk on the related forum, this is not the right place :p