2014-10-09 30 views
7

Tôi đã viết một ứng dụng Console mà khách hàng đang cố chạy nó trên máy Windows Server 2003 R2 machine của họ và họ nhận được thông báo lỗi đó.Application.exe không phải là lỗi ứng dụng Win32 hợp lệ

Nếu tôi đi đến Build -> Configuration quản lý tất cả các dự án của tôi được thiết lập để Nền tảng "Any CPU" và cấu hình của

"Release" 

gì khác tôi có thể đã bỏ lỡ? Họ không muốn thực sự chạy ứng dụng giao diện điều khiển bằng cách nhấp đúp vào nó, họ muốn đưa nó vào các tác vụ lịch biểu của Windows để nó có thể nhặt nó lên và rn nó vào một số thời điểm nhất định

+1

Bạn đang nhắm mục tiêu phiên bản .NET nào? Và phiên bản nào được cài đặt trên máy chủ? –

+0

@MarcGravell Cảm ơn Mark, tôi đã nghĩ về điều tương tự, tôi "là" theo mặc định trên 4.5, Vì vậy, bây giờ tôi xây dựng nó trên 4,0 thay vào đó và sẽ liên lạc với khách hàng và xem phiên bản họ đang có? Wnhat là một cách hay để đảm bảo họ đang sử dụng phiên bản nào? Yêu cầu họ chụp ảnh màn hình .NET framework được cài đặt từ bảng điều khiển của họ? – ConfusedSleepyDeveloper

+0

@ConfusedSleepyDeveloper Bạn chỉ có thể cung cấp cho khách hàng của bạn một liên kết đến [cài đặt web của v 4.0] (http://www.microsoft.com/en-us/download/details.aspx?id=17851) với bạn chương trình. Một cách tiếp cận tốt hơn là tạo một gói triển khai với ClickOnce hoặc một cái gì đó như InstallShield. Gói sẽ kiểm tra các yêu cầu trước và cài đặt chúng nếu cần. –

Trả lời

25

Bắt đầu với .NET 4.5, trình biên dịch tạo ra một EXE được đánh dấu là chỉ tương thích với Windows phiên bản 6.0 trở lên. Vista trở lên. Một tệp thực thi như vậy sẽ không chạy ngay lập tức khi được khởi động trên XP và Server 2003, chúng là các phiên bản Windows 5.0. Bạn gặp lỗi này trước nó có thể cho bạn biết rằng .NET 4.5 chưa được cài đặt trên máy.

Bạn phải mục tiêu .NET 4.0 trở xuống. Yêu cầu tương tự đối với bất kỳ tệp DLL nào mà bạn có sự phụ thuộc vào, bao gồm cả các tệp DLL không được quản lý. Thông tin thêm về điều này trong this post.

+0

Không biết về Win2003 và phiên bản của nó. Cảm ơn. Hy vọng rằng các bên thứ ba khác của tôi là OK hoặc khác tôi "đang hosed! Tôi đã cài đặt EPPLUS từ NUGET – ConfusedSleepyDeveloper

+0

Ok một câu hỏi Hans! Họ gửi cho tôi ảnh chụp màn hình của họ đã cài đặt .NET và họ đang ở trên .NET 4.0" Hồ sơ khách hàng ".. Tôi đã biên soạn nó thành "4.0" bây giờ ... vậy là tốt hay tôi nên nói với họ để cài đặt đầy đủ .NET 4.0? – ConfusedSleepyDeveloper

+0

Chúng tôi chỉ có thể chắc chắn về điều đó nếu bạn cũng biên dịch với Hồ sơ Khách hàng 4.0 được chọn làm Không có vấn đề nếu bạn nhận được một biên dịch sạch sẽ ngay bây giờ họ sẽ nhận được một dấu nhắc để cài đặt phiên bản đầy đủ khi họ bắt đầu chương trình của bạn. Có lẽ bạn không nên sửa chữa :) –

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