使用 Wine 运行 .Net 4.0 应用程序

使用 Wine 运行 .Net 4.0 应用程序

我试图在 Ubuntu 14.04 LTS 下使用 Wine 运行一个简单的程序,但是它抱怨说

fixme:mscoree:parse_supported_runtime sku=L".NETFramework,Version=v4.0" not implemented
fixme:mscoree:parse_probing privatePath=L"assemblies" not implemented
The entry point method could not be loaded

尝试手动安装 .Net 4.0 会在安装程序中产生错误,提示 .Net 4.0 已安装。

跑步winetricks forcemono

------------------------------------------------------
You are using a 64-bit WINEPREFIX. If you encounter problems, please retest in a
clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing w_do_call forcemono
Executing load_forcemono
Using native override for following DLLs: mscoree
Executing winetricks_early_wine regedit C:\windows\Temp\_forcemono\override-dll.reg
Using override for following DLLs: mscorsvw.exe
Executing winetricks_early_wine regedit C:\windows\Temp\_forcemono\override-dll.reg

然后尝试再次启动同一个应用程序将仍然失败

err:module:import_dll Library mscoree.dll (which is needed by L"Z:\\home\\<user>\\tmp\\saveedit_r237\\Gibbed.Borderlands2.SaveEdit.exe") not found
err:module:LdrInitializeThunk Main exe initialization for L"Z:\\home\\<user>\\tmp\\saveedit_r237\\Gibbed.Borderlands2.SaveEdit.exe" failed, status c0000135

我尝试过 Wine 1.6 和 1.7.30,但都失败了。.Net 4.0 真的实现了吗?还是部分实现了?有没有办法让这个 .Net 4.0 应用程序运行?

更新

Winetricks 提示dotnet40无法在 64 位系统上安装。那么,我该如何安装它呢?

答案1

首先,请注意这个非常明显的警告:

------------------------------------------------------
You are using a 64-bit WINEPREFIX. If you encounter problems, please retest in a
clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------

这表明你需要创建一个 32 位 Wineprefix因为 Wine 在 32 位系统上运行得更好 - 这可以通过在运行命令之前告诉 wine 要使用什么架构来实现(我认为这也可以通过卸载 Wine x86_64 并安装 Wine i386/i686 来完成 - 无论如何,运行此命令后保持终端对其他 wine 命令保持打开状态)

export WINEARCH="win32"

这将设置 wine 在启动前读取的环境变量(参见man wine)。

让它创建自己的 WINEPREFIX(存储 Wine 虚拟驱动器的位置)也是一个好主意。默认情况下,这是~/.wine,但您可以为每个架构和程序创建单独的 WINEPREFIX - 因此要在目录中创建 WINEPREFIX /home/USERNAME/.wine-PROGRAM-NAME/

export WINEPREFIX=~/.wine-PROGRAM-NAME/

该目录不必存在(理想情况下它不应该存在,这样东西就不必被覆盖),但父目录可能应该存在 - 你也应该有读写它的权限,而且由于技术原因,我认为 wineprefix 不能放在 FAT/NTFS 驱动器上(它不起作用)

因此,要为程序设置 32 位 wine 前缀:

export WINEARCH="win32"
export WINEPREFIX=~/.wine-PROGRAM-NAME/
wineboot -u

您可以将其替换PROGRAM-NAME为程序的名称,以便以后更容易识别程序。只需确保它仅包含字母和数字,因为标点符号在各种命令 shell 中通常具有特殊功能。

然后你应该看到如下窗口:

wineprefix 正在更新....

然后您就可以开始了。现在您可以使用安装 NET 4.0 winetricks(您可能希望从这里第一的):

winetricks dotnet40

这应该在命令之后的终端中export WINEPREFIX=...,或者放在 wine 命令之前,如下所示(对于一个命令行的应用启动器很有用)

env WINEPREFIX=~/.wine-PROGRAM-NAME/" winetricks dotnet40

您可能还想使用winetricks来安装它可能需要的其他东西 - 例如字体(使用选项corefonts, lucida, tahoma)。要列出 winetricks 的选项,请使用winetricks list-all

然后,您可以使用 来安装该程序wine "~/Downloads/PATH/TO/INSTALLER.exe"。再一次(复制文件,然后将“粘贴文件名”放入终端,因此看起来'/home/wilf/Desktop/name spaces/installer.exe'不是file:///home/wilf/Desktop/name spaces/installer.exe'

您应该确保在运行此命令之前(特别是如果您关闭了终端)或在同一行中已导出 WINEPREFIX。在使其工作(或不工作)后,您可能希望对其工作情况进行报告这里(包括你做了什么等,以便你可以帮助其他人)。如果你遇到问题,并且输出中出现明显的错误,你可以报告错误

安装后,它应该会使应用程序的启动器出现在 Dash/Menu 上,有时也出现在桌面上。否则,将来要运行该应用程序,您可能需要再次使用export WINEPREFIX=...and wine ....(或env WINEPREFIX=... wine .....)运行该应用程序,除非您创建启动器(如果您需要知道如何操作,请在下面或其他地方发表评论......)


更多信息、故障排除等

如何安装 winetricks?

您可以使用此命令从 Ubuntu 存储库中获取一个版本(或从软件中心安装 Winetricks):

sudo apt-get install winetricks

然后您就可以使用winetricks OPTIONS它来做事了。

对于最新版本,您可以使用以下命令下载并使用最新版本:

wget  https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks 

请注意,你必须以 身份运行它./winetricks <OPTIONS>,除非它的目录位于 shell 的$PATH

我不想使用终端,该怎么办?

您要使用的应用程序可能可以在玩转Linux(如果你能找到它的话应该是这里) - 这几乎都是 GUI,并且会自动为您完成大部分步骤。

否则,您可以使用终端非常轻松地完成此操作(通常比使用 GUI 程序执行此操作具有更多的控制权),只需小心输入的内容(特别是如果它包含命令sudorm等)。首先尝试了解每个命令发生了什么。

此外,其中一些步骤可以通过其他方式完成 -您可以通过开放的 GUIwinecfg执行winetricks一些步骤,但您能做的事情仍然有限。

如何安装最新版本的 Wine?

较新的 Wine 版本更为最新,因此可能能够更好地运行该程序(除非有影响它的回归)。要安装当前最新版本(Wine1.7),您可以使用官方 Wine PPA

sudo apt-add-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine1.7

如果找不到包wine1.7,请尝试再次运行安装命令,但wine使用wine1.7

对于 Wine 的一般安装和配置,您还可以尝试这个问题

我想要使​​用的程序是为较新版本的 Windows 设计的,我该怎么办?

Wine 默认复制 Windows XP,由于它已经 EOL,所以有些程序不支持它(我想这很有用,因为您可能可以在 Linux 下的 Wine 下运行 WinXP 程序,而且您可以“从轨道上消灭 WinXP”:)

无论如何,首先打开 Wine 配置窗口:

export WINEPREFIX=~/.wine-PROGRAM-NAME/
winecfg

~/.wine-PROGRAM-NAME/您之前创建的 WINEPREFIX 在哪里。

并在“应用程序”选项卡底部选择要复制的 Windows 版本。然后尝试再次安装该应用程序。

WINE 下的 WINDOWS 病毒?!?!

很有可能. 不要安装网上的随机软件,尽量确保它来自可信赖的网站。

相关内容