Windows 7 64Bit .Net programme ausführen

easy.2ci

Commodore
Registriert
Mai 2006
Beiträge
4.388
Hallo,

habe hier ein Windows 7 64Bit System.

Nun führe ich ein in Visual Studio 2005 geschriebenes .Net Programm aus. Die Standardeinstellung in Visual Studio ist dass die kompilierten .exe Dateien sowohl 32Bit als auch 64Bit sind. (ist ja nur ein precompile, die eigentliche Kompilierung erfolgt durchs Framework eh zur Laufzeit)

So... mein Programm läuft nun also automatisch als native 64 Bit. Das sieht man ja im Taskmanager. Da ich aber nie die 64Bit Eigenheiten von Windows 7 beim Programmieren berücksicht hab, und erstmal nicht neu kompilieren kann, will ich nun die Anwednung irgendwie zwingen, das 32Bit .Net Framework zu verwenden.

Geht das irgendwie? Ich steh grad auf dem Schlauch...
 
Wenn du das Framework nutzt und wie du selbst aussagst .NET ja einen Intermediat Code erzeugt der auf dem Zielsystem erst in executeble Code verwandelt wird, von welcher Einschränkung redest du denn?

.NET ist gerade dafür da, dass du dich um keine System Eigenheiten mehr kümmern must, sondern dein Code fertige "Häppchen" ausführt.

Falls du also keine 32Bit System Calls aufrufst, die du hart da rein gebracht hast, wirst du auch keine Probleme haben.
 
Danke für die schnelle Antwort. Hat aber leider nichts gebracht.

Die damit gestarteten Programme laufen immernoch als 64Bit Programme.
 
das gibts schon in VS an, womit es kombiliert werden soll, das Zauberwort lautet: "Projektmappenplattform"

entweder unter den eigenschaften der projektmappe, oder (mag ich lieber) in der Leiste einblenden, gleich neben dem Relais/Debug..

übrigens arbeitet der debuger ned so gut im 64-bit modus, kann dort nix verändern - auch ned im neuen vs2010 - dh. is beim debugen der 32bit modus manchmal ganz praktisch

ps.: ahhh.. jetzt versteh ichs.. wow.. nachträglich nochmals verändern, cooler link guardianangel
 
Zuletzt bearbeitet:
triton das Problem sind Zugriffe auf Daten der Registry, die nur im 32Bit Teil liegen. Da die .exe nun im 64Bit Mode läuft, findet der nix.

Den QuellCode kann ich nicht so mal eben ändern und neukompilieren auch nicht.


Allerdings habe ich gerade von einem MVP im social.msdn Forum folgendes gefunden:
"It sounds like your app is running in 64-bit mode. That would be automatic if it is a .NET app. Use Corflags.exe or Build + Platform Target to force it to run in 32-bit mode. "

Da der Rebuild wie gesagt nicht in Frage kommt hab ichs gerade mal mit Corflags ausprobiert und das hat funktioniert. Thread kann somit geschlossen werden. Hab die Lösung hier noch reingeschrieben, falls andere ebenfalls mal auf dieses Problem stossen.
 
hättest einfach mal auf meinen link klicken sollen :P
Ergänzung ()

was mir noch einfällt, falls du al wieder kompilieren kannst ;) findest du mit einer 64 bit anwendung in der registry unter syswow64 die 32 bit ebene :P

den ordner findet man auch übrigens im dateisystem, such einfach mal nach
 
Guardian danke für den Link.

Da ich parallel auch selbst weitergesucht hab und hier nicht minütlich auf Aktualisieren geklickt hab, hab ich deinen Beitrag erst später gesehen.

Da sind wir wohl gleichzeitig zur selben Lösung gekommen.


@Willard... dein Zauberwort hilft hier nichts, wie mehrfach bereits erwähnt, scheiden Änderungen am Projekt aus.
 
denk dran das falls deine exe dlls verwendet diese auch 32 bit geflaggt sein müssen
 
Top Hinweis. Nehm ich mal mit auf meine ToDo Liste.
 

Ähnliche Themen

Zurück
Oben