如何让 Wine 在 Program Files 中查找 DLL 而不是 /usr/share ?

如何让 Wine 在 Program Files 中查找 DLL 而不是 /usr/share ?

我正在尝试运行一个名为枢纽之下通过葡萄酒。游戏说我需要 .NET Desktop Runtime 5,所以我下载了Windows安装程序并安装了它。然而,当运行实际游戏时,我收到以下错误消息:

消息:发生致命错误,在 [Z:\usr\share\dotnet\host\fxr\5.0.7] 中找不到所需的库 hostfxr.dll

当我find . | grep hostfxr在我的.wine前缀中运行时,它在几个地方找到了正确的 DLL:

./drive_c/Program Files/dotnet/host/fxr/5.0.7/hostfxr.dll
./drive_c/Program Files (x86)/dotnet/host/fxr/5.0.7/hostfxr.dll

如何让游戏找到这些 DLL 而不是在我的 DLL 中查找/usr/share

答案1

我可以通过将 DLL 复制到 .exe 的位置来使安装程序正常工作。不知道为什么我必须这样做,但它有效:

cd ./path/to/game
cp ~/.wine/drive_c/Program\ Files/dotnet/host/fxr/5.0.7/hostfxr.dll .

答案2

是的,这是一篇较旧的帖子,但 6 小时后我发现了一个实际上简单得令人恼火的解决方案。

当您通过终端运行 Wine 时,您需要做的就是添加“DOTNET_ROOT=”并将 Windows 路径放置到安装 dotnet 的位置。(默认情况下为:C:\Program Files\dotnet)

完整命令应如下所示:

WINEPREFIX=/PATH/TO/PREFIX DOTNET_ROOT="C:\Program Files\dotnet" wine foo.exe

希望这对某人有帮助!

相关内容