2009-06-26 22 views

Trả lời

1

Đố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.

6

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.

1

Ứ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.

0

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.

5

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.

+0

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

+0

@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. –

0

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.

2

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.

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