2011-01-05 70 views
7

Tengo un proyecto que he creado en Visual Studio 2010 en una máquina con Windows 7. Se compila y se ejecuta sin problemas.No es una aplicación Win32 válida

Cuando coloco la aplicación en una máquina XP con .NET 4 no se ejecuta con el error "no es una aplicación Win32 válida"

He intentado todo lo que aquí, sin suerte: http://blogs.msdn.com/b/dsvc/archive/2009/06/19/troubleshooting-not-a-valid-win32-application-error-at-the-startup.aspx

No tengo idea de lo que está mal. ¿Algunas ideas?

Gracias

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

Usted ha construido una aplicación de 64 bits - es el XP máquina de 64 bits? Si no, ese sería el problema. Las máquinas de 32 bits no pueden ejecutar programas creados para arquitecturas de 64 bits. – brady

Respuesta

20

En las propiedades del proyecto, se dirige el proyecto "x 64" en lugar de "Cualquier CPU"? (Parece que parece "máquina (x64)" en el encabezado bindump, que suena como este puede ser el problema)

¿Está apuntando .net 4 completo o perfil de cliente? Si está completo, verifique que su XP tenga instalado el perfil completo, no solo el perfil del cliente.

(Es poco probable que esté relacionado, pero) ¿Está instalado el redistribuidor de Visual Studio 2010 en la máquina XP?

Compruebe que el archivo no se ha dañado durante la transferencia en la máquina Win32 (por ejemplo, copia de nuevo y Diff o ejecutarlo en su caja de Windows 7)

+0

Esto también podría ser un problema en el futuro. Estoy usando el perfil completo, pero acabo de descargar el primer resultado en Google para .NET 4. ¿Es este solo el perfil del cliente? – Mitch

+0

A veces es difícil de decir, pero el primer golpe que recibí fue este: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=en. La descarga tiene _full_ en su nombre, así que supongo que es el perfil completo. (En general, debe orientar el perfil del Cliente a menos que necesite específicamente algo adicional que esté solo en el perfil completo, y entonces no importará cuál haya instalado el usuario final). –

Cuestiones relacionadas