2011-01-05 9 views
7

Ho un progetto che ho creato in Visual Studio 2010 su un computer Windows 7. Compila e funziona senza problemi.Non un'applicazione Win32 valida

quando ho posto la domanda su una macchina XP con .NET 4 non viene eseguito con l'errore "non è un'applicazione di Win32 valida"

Ho provato tutto qui senza fortuna: http://blogs.msdn.com/b/dsvc/archive/2009/06/19/troubleshooting-not-a-valid-win32-application-error-at-the-startup.aspx

Non ho idea di cosa sia sbagliato. Qualche idea?

Grazie

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

Avete costruito un'applicazione a 64 bit - è la XP macchina a 64 bit? In caso contrario, sarebbe il problema. Le macchine a 32 bit non possono eseguire programmi creati per architetture a 64 bit. – brady

risposta

20

nelle proprietà del progetto, si rivolge il progetto "x 64", piuttosto che "Qualsiasi CPU"? (Sembra dire "macchina (x64)" nell'intestazione bindump, che suona come questo può essere il problema)

E 'destinati a .net 4 pieno o client di profilo? Se è pieno, controlla che il tuo profilo utente sia installato su XP, non solo il profilo del client.

(È improbabile che sia correlato, ma) Il redistore di Visual Studio 2010 è installato sulla macchina XP?

Verificare che il file non è stato danneggiato durante il trasferimento sulla macchina Win32 (ad esempio, copiare indietro e diff o eseguire sul proprio contenitore di Win7)

+0

Questo potrebbe anche essere un problema futuro. Sto utilizzando il profilo completo, ma ho appena scaricato il primo risultato su Google per .NET 4. Si tratta solo del profilo cliente? – Mitch

+0

Talvolta è difficile da dire, ma il primo colpo che ho ottenuto è stato questo: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=en. Il download ha _full_ nel suo nome, quindi presumo sia il profilo completo. (In genere si dovrebbe scegliere come target il profilo del Cliente a meno che non si abbia bisogno di qualcosa in più che è solo nel profilo Completo, e quindi non importa quale sia l'utente finale installato). –