it-swarm.com.de

.exe ist keine gültige Win32-Anwendung unter Windows XP

Ich verwende Visual Studio 2012 Professional und erstelle ein Installationsprogramm mithilfe des erweiterten Installationsprogramms (von Drittanbietern).

Wenn ich die installierte EXE-Datei unter Windows XP ausführe, wird die folgende Meldung angezeigt:

<appName> .exe ist keine gültige Win32-Anwendung.

Die installierte ausführbare Datei funktioniert sowohl unter Windows 7 als auch unter Windows 8 einwandfrei.

Wie kann ich das Programm unter Windows XP zum Laufen bringen?

9
Rahul Shirphule

Führen Sie an der Visual Studio-Eingabeaufforderung den folgenden Befehl aus:

 Dumpbin.exe /headers c:\where\you\put\it\setup.exe

Dabei ist "setup.exe" die von Ihrem Ersteller des Installationsprogramms erstellte Setup-EXE. Ich werde hier ein Beispiel für die Informationen veröffentlichen, die für Sie von Bedeutung sind:

OPTIONAL HEADER VALUES
             10B magic # (PE32)
            ...
            4.00 operating system version
            0.00 image version
            6.00 subsystem version              // <=== here!!
               0 Win32 version
            ...

Die Versionsnummer des Subsystems ist wichtig. VS2012 ist die erste Version von Visual Studio, bei der dieser Wert auf 6.00 festgelegt wurde, die Versionsnummer von Vista. In früheren Versionen sowie in VS2012, wenn Sie auf .NET 4.0 oder früher abzielen, wird diese Versionsnummer auf 4,00 festgelegt

Dies ist ansonsten ein wichtiger Schritt vorwärts und Teil des Auslaufens der Unterstützung für XP. Windows ab Version 6.00, Vista, Win7 und Win8 achten auf diese Nummer. Es wird davon ausgegangen, dass Ihr Programm spätere Windows-Funktionen nicht kennt und dass mehrere Anwendungskompatibilitäts-Shims aktiviert sein müssen. Am bemerkenswertesten ist appcompat in Aero, dem Desktop-Design, das Fenster mit fetten Rändern anzeigt, die mit einer Maus einfach anzuklicken sind. Windows wird an diesen Rändern liegen und Ihnen mitteilen, dass Ihr Fenster kleiner ist als es tatsächlich ist. Eine große Verwirrung für Programmierer, die versuchen, Fenster in eine Linie zu bringen.

Die Anzeige von 6.00 hat zur Folge, dass Ihr Setup-Programm unter XP nicht mehr ausgeführt werden kann. Es ist Version 5.02.

Stellen Sie also zunächst sicher, dass Sie not target .NET Version 4.5 ausführen, da diese für XP nicht verfügbar ist. Verwenden Sie stattdessen 4.0. Wenn Sie weiterhin Probleme haben, wenden Sie sich an den Support des Herstellers und fragen Sie ihn, wie er diese Nummer in der vom Tool erstellten Datei setup.exe steuern kann. Eine Problemumgehung besteht darin, Editbin.exe mit der Option/SUBSYSTEM auszuführen, um die Nummer zu ändern.

16
Hans Passant

Tatsächlich generiert .NET 4.5 Framework nur Windows 6.0 oder höherEXE. Und in deinem Fall XP gehöre zu Windows Version 5.0 daher bekommst du diesen Fehler. T

Die einfache Lösung für Ihr Problem lautet: Ziel .NET 4.0 oder weniger.

Danke an Hans Passant

Ich bin ziemlich neu in Visual Studio, daher bin ich mir nicht sicher, ob die unten stehende Option kürzlich hinzugefügt wurde, aber Visual Studio 2013 verfügt über eine Abwärtskompatibilitätsoption, um Win_XP in die Zielliste aufzunehmen. Das folgende Bild hilft:

Visual Studio Configuration


Und wenn ich dann den Befehl dumpbin ausführe, erhalte ich die folgenden Ergebnisse.

enter image description here


Nun kann die Anwendung unter normalen Umständen unter Windows XP ausgeführt werden.
Hoffe das ist hilfreich.

0
sjsam