用Wine运行.Net 4.0应用程序


17

我试图在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位系统上安装。那么,我该如何安装呢?


您能否添加有关哪个程序以及它设计用于哪个Windows版本的详细信息?
Wilf 2014年

Answers:


27

首先,请注意以下非常明显的警告:

------------------------------------------------------
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 /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为该程序的名称,以使以后更容易识别该程序。只要确保只包含字母和数字,因为标点符号通常在各种命令外壳中都有特殊功能。

然后,您应该获得一个这样的窗口:

wineprefix正在更新。

然后您就可以开始了。现在,您可以使用来安装NET 4.0 winetricks(您可能想先从这里获取最新版本):

winetricks dotnet40

这应该在export WINEPREFIX=...命令之后的终端中,或者像这样将其放置在wine命令之前(对于一个命令行的应用启动器很有用)

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

您也可以使用winetricks安装一些其他的东西,可能需要-比如字体(使用选项corefontslucidatahoma)。要列出葡萄酒技巧的选项,请使用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(仪表盘/菜单)中,有时甚至出现在Desktop(桌面)中。否则在将来运行该应用程序时,可能需要再次使用export WINEPREFIX=...wine ....(或env WINEPREFIX=... wine .....)运行该应用程序,除非您创建了启动器(如果需要了解如何启动,请在下方或某处添加注释。)


更多信息,故障排除等

如何安装葡萄酒技巧?

您可以使用以下命令从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

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

您想使用的应用程序可以在PlayOnLinux运行(应该可以在这里找到)-这几乎是所有GUI并自动为您完成大部分步骤。

否则,您可以使用终端来做到这一点很容易(你通常比如果一个GUI程序做更多的控制),只是要小心你投入(尤其是如果它包含的命令sudorm等)。首先尝试了解每个命令的操作。

同样,这些步骤中的某些步骤可以通过其他方式完成- winecfg以及winetricks打开的GUI都可以通过这些步骤执行某些步骤,但是再次限制了您的操作。

如何安装最新的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,请尝试再次运行install命令,但使用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版本。然后尝试再次安装该应用程序。

酒下的WINDOWS病毒?!?!

很有可能。不要安装互联网的随机软件,请尝试确保它来自受信任的站点。


2
由于我不大量使用Wine,因此我想直接WINEARCH.bashrc脚本中进行设置,然后~/.wine完全擦除并继续进行操作winetricks dotnet40。现在可以使用了。谢谢!
Yanick Rochon 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.