2011-01-05 40 views
7

Tôi có một dự án tôi đã xây dựng trong Visual Studio 2010 trên máy tính Windows 7. Nó biên dịch và chạy mà không có vấn đề gì.Không phải ứng dụng Win32 hợp lệ

Khi tôi đặt ứng dụng trên một máy XP với .NET 4 nó không chạy với lỗi "không phải là một ứng dụng Win32 hợp lệ"

tôi đã cố gắng tất cả mọi thứ ở đây không có may mắn: http://blogs.msdn.com/b/dsvc/archive/2009/06/19/troubleshooting-not-a-valid-win32-application-error-at-the-startup.aspx

Tôi không biết có gì sai. Bất kỳ ý tưởng?

Cảm ơn

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

Bạn đã xây dựng một ứng dụng 64 bit - là XP máy 64 bit? Nếu không, đó sẽ là vấn đề. Các máy 32 bit không thể chạy các chương trình được xây dựng cho các kiến ​​trúc 64 bit. – brady

Trả lời

20

Trong các tính chất của dự án, được dự án nhắm mục tiêu "x64" hơn là "Bất kỳ CPU"? (Nó có vẻ như nói "máy (x64)" trong tiêu đề bindump, mà âm thanh như thế này có thể là vấn đề)

Có phải nhắm mục tiêu .net 4 đầy đủ hoặc hồ sơ khách hàng? Nếu đầy đủ, hãy kiểm tra xem XP của bạn đã cài đặt đầy đủ hồ sơ, không chỉ là hồ sơ khách hàng.

(Không có khả năng liên quan, nhưng) Có phải cài đặt lại Visual Studio 2010 trên máy XP không?

Kiểm tra xem các tập tin đã không bị hỏng trong quá trình chuyển vào máy Win32 (ví dụ copy nó trở lại và diff nó hay chạy nó trên hộp Win7 của bạn)

+0

Đây cũng có thể là một vấn đề trong tương lai. Tôi đang sử dụng hồ sơ đầy đủ, nhưng chỉ cần tải xuống kết quả đầu tiên trên Google cho .NET. 4. Đây có phải là hồ sơ khách hàng không? – Mitch

+0

Đôi khi khó nói, nhưng lần truy cập đầu tiên tôi nhận được là: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&displaylang=en. Tải xuống có _full_ trong tên của nó, vì vậy tôi đoán đó là hồ sơ đầy đủ. (Nói chung, bạn nên nhắm mục tiêu hồ sơ khách hàng, trừ khi bạn cụ thể cần một cái gì đó thêm mà chỉ có trong hồ sơ đầy đủ, và sau đó nó sẽ không có vấn đề mà một trong những người dùng cuối đã được cài đặt). –

Các vấn đề liên quan