8

Câu hỏi này đã được hỏi trước có lẽ nhiều lần, nhưng tôi không thể có được giải pháp điển hình để làm việc cho tôi. Các proposed solution là đặt này trong "app.config" file:Chạy ứng dụng .NET 3.5 trên hệ thống .NET 4 chỉ

<configuration> 
    <startup> 
     <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 

Nhưng với một chương trình "Hello World" đơn giản, tôi vẫn nhận được lỗi: "Không thể tìm thấy một phiên bản của bộ thực thi để chạy này ứng dụng.".

Đối với một số nền, tôi đang sử dụng Windows XP (thông qua Windows Virtual PC trên Windows 7) và chỉ cài đặt thời gian chạy .NET 4.0 trên XP.

Sau khi một số nghiên cứu, tôi thấy trang này: http://msdn.microsoft.com/en-us/library/ee941656.aspx#core

Nó đề cập: "Nếu tập tin cấu hình ứng dụng của bạn được đặt tên ứng dụng name.config, đổi tên nó để ứng dụng name.exe.config Ví dụ, đổi tên. MyApp.config để MyApp.exe.config. ".

Tôi đã thử rằng, nghĩ rằng nó có thể giải quyết vấn đề, nhưng tôi vẫn nhận được "Không thể tìm thấy một phiên bản của thời gian chạy để chạy ứng dụng này." khi tôi cố gắng chạy ứng dụng .NET 3.5 (hồ sơ khách hàng hoặc đầy đủ) trên WinXP với .NET 4.0.

+1

Điều này được biết là hoạt động tốt. Bạn đã không thực sự đổi tên nó thành "MyApp.exe.config", phải không? Thay thế MyApp bằng tên chương trình của bạn. –

+0

Không, tôi đổi tên nó từ "app.config" thành "app.exe.config" vì nó đã được đặt tên là "app.config". Tên chương trình của tôi thực sự là "testOnNet40only". Nathan dưới đây dường như ngụ ý người dùng cần CLR 2.0-3.5 sau khi tất cả mặc dù, vì vậy tôi không chắc chắn nếu bất cứ điều gì sẽ làm việc. –

+1

Điều đó dường như là những gì tôi đang nói đến. "app.exe.config" không tốt, bạn phải đặt tên là "testOnNet40Only.exe.config". Và nếu bạn sử dụng trình gỡ lỗi với quy trình lưu trữ được bật thì nó cần được đặt tên là "testOnNet40Only.vshost.exe.config". –

Trả lời

6

Tôi đã bẻ khóa. Điều này có thể âm thanh daft, nhưng nó chỉ ra rằng tập tin cấu hình cần thiết để được với thực thi cuối cùng trong thư mục của người dùng. Sau tất cả các nghiên cứu của tôi, điều này dường như không được làm rõ ở bất cứ đâu. Tôi đã nghĩ rằng nó chỉ được sử dụng cho mục đích biên dịch để được trong thư mục của nhà phát triển.

Trong danh sách tệp trình chỉnh sửa VS, nó có thể vẫn là "app.config". Tuy nhiên, khi được biên dịch, VS sẽ tự động tạo "{ProgramName} .exe.config" thay vào đó (và đặt nó vào thư mục bin/release). Đây là tệp cần phải đi trong thư mục của người dùng cuối cùng cùng với tệp thực thi.

Để tóm tắt, có, bạn có thể chạy ứng dụng .NET 3.5 trên hệ thống chỉ cài đặt .NET 4.0.