2011-01-05 11 views
7

Ich habe ein Projekt, das ich in Visual Studio 2010 auf einem Windows 7-Computer erstellt habe. Es kompiliert und läuft ohne Probleme.Keine gültige Win32-Anwendung

Wenn ich die Anwendung auf einem XP-Rechner mit .NET 4 legen Sie es nicht mit dem Fehler läuft „ist keine gültige Win32-Anwendung“

ich hier alles ohne Erfolg versucht: http://blogs.msdn.com/b/dsvc/archive/2009/06/19/troubleshooting-not-a-valid-win32-application-error-at-the-startup.aspx

Ich habe keine Ahnung, was falsch ist. Irgendwelche Ideen?

Dank

FYI: bindump:

Microsoft (R) COFF/PE Dumper Version 10.00.30319.01 
Copyright (C) Microsoft Corporation. All rights reserved. 


Dump of file TimeKeeper.exe 

PE signature found 

File Type: EXECUTABLE IMAGE 

FILE HEADER VALUES 
      8664 machine (x64) 
       2 number of sections 
     4D24EED9 time date stamp Thu Jan 06 09:21:13 2011 
       0 file pointer to symbol table 
       0 number of symbols 
       F0 size of optional header 
       22 characteristics 
        Executable 
        Application can handle large (>2GB) addresses 

OPTIONAL HEADER VALUES 
      20B magiC# (PE32+) 
      8.00 linker version 
      92600 size of code 
      600 size of initialized data 
       0 size of uninitialized data 
       0 entry point 
      2000 base of code 
      400000 image base (0000000000400000 to 0000000000497FFF) 
      2000 section alignment 
      200 file alignment 
      4.00 operating system version 
      0.00 image version 
      4.00 subsystem version 
       0 Win32 version 
      98000 size of image 
      200 size of headers 
       0 checksum 
       2 subsystem (Windows GUI) 
      8540 DLL characteristics 
        Dynamic base 
        NX compatible 
        No structured exception handler 
        Terminal Server Aware 
      400000 size of stack reserve 
      4000 size of stack commit 
      100000 size of heap reserve 
      2000 size of heap commit 
       0 loader flags 
       10 number of directories 
       0 [  0] RVA [size] of Export Directory 
       0 [  0] RVA [size] of Import Directory 
      96000 [  598] RVA [size] of Resource Directory 
       0 [  0] RVA [size] of Exception Directory 
       0 [  0] RVA [size] of Certificates Directory 
       0 [  0] RVA [size] of Base Relocation Directory 
      94454 [  1C] RVA [size] of Debug Directory 
       0 [  0] RVA [size] of Architecture Directory 
       0 [  0] RVA [size] of Global Pointer Directory 
       0 [  0] RVA [size] of Thread Storage Directory 
       0 [  0] RVA [size] of Load Configuration Directory 
       0 [  0] RVA [size] of Bound Import Directory 
       0 [  0] RVA [size] of Import Address Table Directory 
       0 [  0] RVA [size] of Delay Import Directory 
      2000 [  48] RVA [size] of COM Descriptor Directory 
       0 [  0] RVA [size] of Reserved Directory 


SECTION HEADER #1 
    .text name 
    924FE virtual size 
    2000 virtual address (0000000000402000 to 00000000004944FD) 
    92600 size of raw data 
    200 file pointer to raw data (00000200 to 000927FF) 
     0 file pointer to relocation table 
     0 file pointer to line numbers 
     0 number of relocations 
     0 number of line numbers 
60000020 flags 
     Code 
     Execute Read 

    Debug Directories 

     Time Type  Size  RVA Pointer 
    -------- ------ -------- -------- -------- 
    4D24EED9 cv   8E 00094470 92670 Format: RSDS, {07D03CC8-7510-4698-B5EB-6DC50714B88D}, 3, C:\Users\Mitch\Documents\Timekeeper 24.12.2010\client\TimeKeeper 24-12-2010\TimeKeeper\obj\x86\Release\TimeKeeper.pdb 

SECTION HEADER #2 
    .rsrc name 
    598 virtual size 
    96000 virtual address (0000000000496000 to 0000000000496597) 
    600 size of raw data 
    92800 file pointer to raw data (00092800 to 00092DFF) 
     0 file pointer to relocation table 
     0 file pointer to line numbers 
     0 number of relocations 
     0 number of line numbers 
40000040 flags 
     Initialized Data 
     Read Only 

    Summary 

     2000 .rsrc 
     94000 .text 
+3

Sie eine 64-Bit-Anwendung aufgebaut haben - ist die XP Maschine 64 Bit? Wenn nicht, wäre das das Problem. 32-Bit-Maschinen können keine Programme ausführen, die für 64-Bit-Architekturen erstellt wurden. – brady

Antwort

20

In den Projekteigenschaften wird das Projekt "x64" und nicht als "Any CPU" Targeting? (Es scheint „-Maschine (x64)“ im bindump Header zu sagen, die wie das klingen kann das Problem sein)

Ist es .net 4 voll oder Client-Profil Targeting? Wenn Sie voll sind, überprüfen Sie, ob in Ihrem XP das vollständige Profil und nicht nur das Clientprofil installiert ist.

(Wahrscheinlich nicht verwandt, aber) Ist die Visual Studio 2010-Redist auf dem XP-Computer installiert?

Überprüfen Sie, ob die Datei nicht während der Übertragung auf die Win32-Maschine beschädigt wurde (zB kopieren Sie es zurück und diff es oder auf den Win7-Box laufen)

+0

Dies könnte auch ein zukünftiges Problem sein. Ich verwende das vollständige Profil, habe aber das erste Ergebnis auf Google für .NET 4 heruntergeladen. Ist dies nur das Kundenprofil? – Mitch

+0

Es ist manchmal schwer zu sagen, aber der erste Treffer, den ich bekam, war: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=en. Der Download hat _full_ in seinem Namen, also nehme ich an, es ist das volle Profil. (Im Allgemeinen sollten Sie das Client-Profil als Ziel verwenden, es sei denn, Sie benötigen speziell etwas, das nur im vollständigen Profil vorhanden ist, und dann spielt es keine Rolle, welches der Endbenutzer installiert hat). –

Verwandte Themen