Ausführen der .Net 4.0-Anwendung mit Wine

17

Ich versuche, ein einfaches Programm in Wine unter Ubuntu 14.04 LTS auszuführen, aber es beklagt sich darüber

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

Der Versuch, .NET 4.0 manuell zu installieren, führt zu einem Fehler im Installationsprogramm, der besagt, dass .NET 4.0 bereits installiert ist.

Laufen 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

Dann schlägt der Versuch, dieselbe Anwendung erneut zu starten, immer noch fehl

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

Ich habe Wine 1.6 und 1.7.30 ausprobiert und beide scheitern. Ist .Net 4.0 tatsächlich implementiert? Oder teilweise umgesetzt? Gibt es eine Möglichkeit, diese .Net 4.0-App zum Laufen zu bringen?

Aktualisieren

Winetricks beschwert sich, dass dotnet40es auf einem 64-Bit-System nicht installiert werden kann. Wie installiere ich es?

Yanick Rochon
quelle
Können Sie Details zu welchem ​​Programm und zu welcher Windows-Version hinzufügen?
Wilf
Es ist Borderlands 2 Save Editor .
Yanick Rochon

Antworten:

27

Beachten Sie zuerst diese sehr auffällige Warnung:

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

Dies weist darauf hin, dass Sie ein 32-Bit-Wineprefix erstellen müssen , da Wine mit 32- Bit-Inhalten besser funktioniert. Dazu muss wine lediglich angegeben werden, welche Architektur verwendet werden soll, bevor seine Befehle ausgeführt werden (dies kann meines Erachtens auch durch Deinstallieren von Wine x86_64 und Installieren erfolgen Wine i386 / i686 - lassen Sie das Terminal für die anderen Wine-Befehle geöffnet, nachdem Sie Folgendes ausgeführt haben :

export WINEARCH="win32"

Dies setzt die Umgebungsvariablen wine reads, bevor es gestartet wird (siehe man wine).

Es wäre auch eine gute Idee, es zu veranlassen, sein eigenes WINEPREFIX zu erstellen (in dem das virtuelle Wine-Laufwerk gespeichert ist). Standardmäßig ist dies so ~/.wine, Sie können jedoch für jede Architektur und jedes Programm eigene erstellen. So erstellen Sie ein WINEPREFIX im Verzeichnis /home/USERNAME/.wine-PROGRAM-NAME/:

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

Das Verzeichnis muss nicht existieren (im Idealfall sollte es nicht existieren, damit das Zeug nicht überschrieben werden muss), aber die übergeordneten Verzeichnisse sollten es wahrscheinlich - Sie sollten auch die Berechtigung haben, darin zu lesen und zu schreiben, und ich nicht Ich denke, das Wineprefix kann aus technischen Gründen auf einem FAT / NTFS-Laufwerk installiert sein (es wird nicht funktionieren) .

So richten Sie ein 32-Bit-Weinpräfix für ein Programm ein:

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

Sie können durch PROGRAM-NAMEden Namen des Programms ersetzen , um es später einfacher zu machen, das Programm zu identifizieren. Stellen Sie nur sicher, dass nur Buchstaben und Zahlen enthalten sind, da die Zeichensetzung in verschiedenen Befehlsshells häufig eine spezielle Funktion hat.

Sie sollten dann ein Fenster wie das folgende erhalten:

der wineprefix wird aktualisiert ....

Dann können Sie loslegen. Jetzt können Sie NET 4.0 mithilfe von installieren winetricks(möglicherweise möchten Sie zuerst die neueste Version von hier herunterladen):

winetricks dotnet40

Dies sollte sich im Terminal nach dem export WINEPREFIX=...Befehl befinden, oder indem es direkt vor dem wine-Befehl platziert wird (nützlich für App-Starter, die eine Befehlszeile haben) :

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

Sie können auch verwenden winetrickseinige andere Sachen zu installieren es brauchen könnte - zB Schriftarten (mit den Optionen corefonts, lucida, tahoma). Verwenden Sie, um die Optionen von winetricks aufzulisten winetricks list-all.

Anschließend können Sie das Programm mit installieren wine "~/Downloads/PATH/TO/INSTALLER.exe". Nochmals (kopieren Sie die Datei und fügen Sie dann die Dateinamen in das Terminal ein, so dass es '/home/wilf/Desktop/name spaces/installer.exe'nicht so aussieht file:///home/wilf/Desktop/name spaces/installer.exe') .

Sie sollten sicherstellen, dass WINEPREFIX exportiert wurde, bevor Sie diesen Befehl ausführen (insbesondere, wenn Sie das Terminal geschlossen haben) oder in derselben Zeile. Nachdem Sie es zum Laufen gebracht haben (oder nicht), möchten Sie möglicherweise einen Bericht darüber erstellen, wie gut es hier funktioniert (einschließlich dessen, was Sie getan haben usw., damit Sie anderen Menschen helfen können). Wenn Sie Probleme haben und erkennbare Fehler in der Ausgabe auftreten, können Sie einen Fehler melden .

Nach der Installation sollte der Starter der App im Dash / Menü und manchmal auf dem Desktop angezeigt werden. Andernfalls müssen Sie die App möglicherweise in Zukunft mit export WINEPREFIX=...und wine ....(oder env WINEPREFIX=... wine .....) erneut ausführen , es sei denn, Sie erstellen einen Launcher (Kommentar unten oder irgendwo, wenn Sie wissen müssen, wie das geht).


Weitere Informationen, Fehlerbehebung usw

Wie installiere ich Winetricks?

Mit diesem Befehl können Sie eine Version aus den Ubuntu-Repositorys herunterladen (oder Winetricks aus dem Software Center installieren):

sudo apt-get install winetricks

Sie können dann verwenden winetricks OPTIONS, um Dinge zu tun.

Für die neueste Version können Sie diese Befehle verwenden, um die neueste Version herunterzuladen und zu verwenden:

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

Beachten Sie ./winetricks <OPTIONS>, dass Sie es als ausführen müssen, es sei denn, das Verzeichnis befindet sich in der Shell $PATH.

Ich möchte kein Terminal verwenden. Was kann ich tun?

Die App, die Sie verwenden möchten, ist möglicherweise unter PlayOnLinux lauffähig (sollte es sein, wenn Sie sie hier finden ) - dies ist so ziemlich die gesamte GUI und erledigt die meisten Schritte automatisch für Sie.

Andernfalls können Sie das Terminal verwenden es sehr leicht zu tun (Sie haben in der Regel viel mehr Kontrolle , als wenn ein GUI - Programm ist , es zu tun), nur vorsichtig sein , was Sie setzen in (vor allem , wenn es um die Befehle enthält sudo, rmusw.). Versuchen Sie zuerst zu verstehen, was mit jedem Befehl los ist.

Außerdem können einige dieser Schritte auf andere Weise durchgeführt werden - beide winecfgund winetricksoffen GUIs , durch die man ein paar Schritte tun können, aber auch hier , was Sie tun können , ist begrenzt.

Wie installiere ich die neueste Wine-Version?

Die neueren Weinversionen sind aktueller, sodass das Programm möglicherweise besser ausgeführt werden kann (es sei denn, es liegt eine Regression vor, die sich darauf auswirkt). Um die aktuellste Version (Wine1.7) zu installieren, können Sie den offiziellen Wine PPA verwenden :

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

Wenn das Paket nicht gefunden wird wine1.7, führen Sie den Befehl install erneut mit winestatt mit auswine1.7

Um Wine generell zu installieren und zu konfigurieren, können Sie diese Frage auch versuchen .

Das Programm, das ich verwenden möchte, wurde für eine neuere Windows-Version entwickelt. Was kann ich tun?

Wine repliziert standardmäßig Windows XP, das von einigen Programmen nicht unterstützt wird, da es sich um EOL handelt (was ich als nützlich erachte, da Sie wahrscheinlich Programme für WinXP unter Wine unter Linux ausführen können und Sie WinXP aus dem Orbit "nuken" können :)

Öffnen Sie zunächst das Wine-Konfigurationsfenster:

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

Wo ~/.wine-PROGRAM-NAME/ist das WINEPREFIX, das Sie zuvor erstellt haben?

Wählen Sie im unteren Bereich der Registerkarte "Anwendungen" die zu replizierende Windows-Version aus. Versuchen Sie dann erneut, die App zu installieren.

WINDOWS-VIREN UNTER WEIN?!?!

Möglicherweise . Installieren Sie keine zufällige Software aus dem Internet. Stellen Sie sicher, dass diese von einer vertrauenswürdigen Site stammt.

Wilf
quelle
2
Da ich Wine nicht sehr oft benutze, dachte ich, ich würde es direkt WINEARCHin mein .bashrcSkript schreiben, dann ~/.winekomplett löschen und fortfahren winetricks dotnet40. Es funktioniert jetzt. Vielen Dank!
Yanick Rochon