Nói chung, ứng dụng .NET Windows Forms có hoạt động trong hệ điều hành 64 bit hay không cần phải sửa đổi?Ứng dụng .NET Windows Forms có hoạt động trong hệ điều hành 64 bit hay không cần phải sửa đổi?
Trả lời
Đối với hầu hết các phần, nó sẽ hoạt động tốt. Bạn nên cẩn thận nếu bạn đang làm bất cứ điều gì với mã nguồn gốc, cho dù đó là mã được quản lý không an toàn, hoặc interop/PInvoke, nhưng nếu tất cả mã của bạn được quản lý, bạn không nên gặp bất kỳ vấn đề nào.
Nếu không dựa vào thư viện bên ngoài 32 bit (ví dụ thành phần COM), nó sẽ hoạt động hoàn hảo dưới dạng quy trình 64 bit và sẽ tận dụng lợi ích của nó (không gian địa chỉ lớn, bộ chỉ lệnh x64, ...) . Nếu nó dựa trên công cụ 32 bit, hầu hết thời gian, bạn vẫn có thể chạy nó dưới dạng ứng dụng 32 bit bằng cách đặt nền tảng đích thành x86.
Ứng dụng .NET thuần túy sẽ chạy trên hệ điều hành 64 bit không có sửa đổi.
Nếu bạn sử dụng một thư viện C++/CLI, kiến trúc sử dụng thành phần COM cụ thể, hoặc làm bất cứ P/Invoke cuộc gọi, bạn có thể cần phải cập nhật ứng dụng của bạn trong một môi trường 64-bit.
Hầu hết các hệ điều hành 64 bit đều có thể xử lý các ứng dụng 32 bit mà không gặp sự cố. Đây là lý do tại sao bạn thấy thư mục Program Files (x86) trên hệ điều hành 64-bit của bạn để xử lý nhiều ứng dụng 32 bit cũ của bạn.
Hầu hết các ứng dụng .NET sẽ hoạt động chưa được sửa đổi trong 64 bit nếu chúng nhắm mục tiêu x86 thay vì bất kỳ CPU nào là mặc định VS.NET.
Miễn là bạn không trộn và kết hợp nền tảng thư viện, bạn sẽ ổn thôi. Nhắm mục tiêu x86 khi bạn biên dịch và bạn nên làm tốt.
Theo liên kết này: MSDN - Migrating 32-bit Managed Code to 64-bit.
Nếu bạn có 100% loại mã được quản lý an toàn thì bạn thực sự chỉ có thể sao chép nó vào nền tảng 64 bit và chạy thành công trong CLR 64 bit.
Nhưng nếu bạn đang sử dụng bất kỳ tính năng sau:
- Gọi API nền tảng qua p/gọi
- Gọi COM đối tượng
- Tận dụng mã không an toàn
- Sử dụng marshaling như một cơ chế để chia sẻ thông tin
- Sử dụng tuần tự hóa như một cách để duy trì trạng thái
nó chỉ ra rằng ứng dụng có thể không hoàn toàn tương thích.
- 1. Ứng dụng Java 64 bit: Hệ điều hành 64 bit, JRE 64 bit và Ứng dụng 64 bit có yêu cầu không?
- 2. .Net WinForm System Beep trên hệ điều hành 64 bit
- 3. Ứng dụng 32 bit hoặc 64 bit trên hệ điều hành 64 bit?
- 4. Hệ điều hành iPhone 64 bit hay 32 bit?
- 5. Chạy ứng dụng AnyCPU dưới dạng 32 bit trên hệ điều hành 64 bit
- 6. SDK Android 32 bit hoặc 64 bit trên hệ điều hành Windows 64 bit?
- 7. Có thể chỉnh sửa và tiếp tục hoạt động cho VS 2010, ứng dụng ASP.Net MVC trên hệ điều hành Windows 7 64 bit không?
- 8. Chạy ứng dụng .NET 32 bit trong hệ điều hành 64bit, có thực sự xấu không?
- 9. Ứng dụng 32 bit có chạy nhanh hơn hoặc chậm hơn trên hệ điều hành 64 bit không?
- 10. Tại sao nên sử dụng hệ điều hành 64 bit?
- 11. FindNextFile không hoạt động trên Windows 64 bit?
- 12. Làm cách nào để xác định xem ứng dụng .NET có 32 hay 64 bit không?
- 13. Sản xuất 64 bit thực thi trên hệ điều hành 32 bit
- 14. Microsoft.Office.Interop.Excel không hoạt động trên 64 bit
- 15. Làm cách nào để hiển thị tệp SVG trong ứng dụng .NET 64 bit?
- 16. Trình điều khiển Visual FoxPro cho 64 bit Windows 7
- 17. Thay đổi sử dụng Winspool.drv trong Windows 7 64 bit từ Windows XP 32 bit
- 18. Có sự khác biệt nào giữa ứng dụng .NET 32 bit và ứng dụng .NET 64 bit không?
- 19. 32 bit và 64 bit có thể hoạt động cùng nhau không?
- 20. Có cách nào để buộc ứng dụng biên dịch "Bất kỳ CPU" nào chạy ở chế độ 32 bit trên hệ điều hành 64 bit không?
- 21. Mã không đồng bộ hoạt động trong Bảng điều khiển nhưng không có trong Windows Forms
- 22. Có lợi thế nào để phát triển trên hệ điều hành 64 bit không?
- 23. Biên soạn 32-bit ứng dụng Qt sử dụng 64-bit gói
- 24. Cổng 32-Bit Trình điều khiển Windows tới 64-Bit Windows
- 25. Nhấp nháy trong ứng dụng Windows Forms
- 26. Ứng dụng .NET có thể chạy với văn phòng 32 bit và 64 bit như thế nào?
- 27. Cách chạy ứng dụng .NET 32 bit trong môi trường 64 bit?
- 28. Sử dụng một trình cài đặt NSIS để cài đặt các tệp nhị phân 32 bit trên hệ điều hành 32 bit và 64-bit nhị phân trên hệ điều hành 64 bit có thể?
- 29. Tại sao __sync_add_and_fetch hoạt động với biến 64 bit trên hệ thống 32 bit?
- 30. Phím Alt và tab không hoạt động trong Windows Forms được mở từ ứng dụng WPF
Bạn có nghĩa là: "nếu chúng/không/nhắm mục tiêu x86 thay vì ...". Chỉ nhắm mục tiêu x86 sẽ tạo ra sự cố. – Richard
@Richard: Không, jsimas là chính xác. Nếu bạn chỉ nhắm mục tiêu x86, ứng dụng của bạn sẽ chạy trên hệ điều hành 64 bit dưới dạng quy trình 32 bit (giống như một exe x86 gốc chạy trên Windows 64 bit). Nó sẽ có khá nhiều môi trường giống như nó được chạy trên một hệ điều hành 32 bit. –