我尝试在 Ubuntu 上安装 Windows 程序。此程序需要 .NET40。
据我所知我有两个选择:
我使用
wine
,安装winetricks
和使用winetricks dotnet40
以及所有使用 win32 架构的东西(因为 dotnet40 只能安装在 32 位上)。通过 成功安装wine Setup.exe
并尝试使用 启动应用程序后,wine Program.exe
我收到奇怪的错误框,因此我尝试了第二种方法。我安装了单声道。
如果我尝试拨打电话,
mono Setup.exe
我会得到:Cannot open assembly 'Setup.exe': File does not contain a valid CIL image.
我在其他地方读到过,无法使用单声道运行设置。有没有办法用 mono 来运行设置?
我调用
Setup.exe
whichwine
works,然后尝试用 启动已安装的程序mono Program.exe
。但现在程序找不到所需的资源。是否有可能告诉 Mono 安装的文件放在哪里?
答案1
您需要安装 wine-mono 包,并使用 wine 运行它。
sudo apt-get install wine-mono
wine ./Setup.exe
除非您使用 GNU/Linux 开发 C# 应用程序,否则最好远离该mono
应用程序。在很多情况下,plainmono
不起作用,而 wine 却可以。这通常是由于 .net 应用程序使用一些原生 Windows 库而不是坚持使用 C# 库造成的。您可以责怪开发人员,您是对的,因为他们下次必须考虑一下,至少使用 Qt 和 C++,或者其他灵活且跨平台的东西。但是,只是让您知道:使用 Windows 编程是一堆变通方法,而且令人惊讶的是,C# 是为了符合旧的 WinAPI 而制作的(刚刚包装到.net)而不是修复它的失败。