2013-02-04 43 views
5

Tôi có hệ thống Windows 64bit và ứng dụng C# sử dụng OleDbConnection để đọc dữ liệu Excel qua phiên bản 32bit của AccessDatabaseEngine.exe COMponents vì tôi đã cài đặt Office 32bit (theo khuyến cáo của MSFT) và phiên bản 64bit của AccessDatabaseEngine không hoạt động với 32bit Office.Ứng dụng .NET có thể chạy với văn phòng 32 bit và 64 bit như thế nào?

Để ứng dụng C# hoạt động, tôi phải đặt "Ưu tiên 32 bit" trong cài đặt xây dựng dự án. Điều này đặt cờ trình biên dịch/nền tảng anycpu32bitpreferred. Không có "ưa thích" về điều này trên nền tảng Intel.

Vì vậy, mọi thứ đều ổn. Trên máy của tôi. Không phải trên máy tính 64bit của ông chủ của tôi, nơi ông đã cài đặt Office 64 bit.

Tôi không thể tìm thấy bất kỳ tùy chọn app.config nào để buộc 64 bit. Có cái nào không? Có thể về mặt lý thuyết trong chuỗi tải .NET có thể là một chuỗi không?

MSFT không nghĩ điều này thông qua. Tôi bằng cách nào đó có thể xây dựng một ứng dụng có thể làm việc với cả phiên bản 32 và 64 bit của Office. Tôi có thể bằng cách nào đó bằng cách sử dụng OleDbConnection?

Tôi biết về cờ CorFlags.exe/32bitpref- nhưng điều này đòi hỏi phải duy trì hai phiên bản nhị phân.

Bất kỳ ý tưởng nào? Sửa lỗi? Tùy chọn App.Config?

Trả lời

0

Bạn có thể sử dụng ODBC để nói chuyện với Excel thay vì đối tượng COM AccessDatabaseEngine. Điều này sẽ bỏ qua vấn đề 32/64 bit.

+0

Cảm ơn, nhưng không muốn sử dụng ODBC. – Dave

3

Bạn cần tải xuống the 64 bit version trình điều khiển ODBC (nó nói quyền truy cập nhưng nó cũng vượt trội trình điều khiển).

Bạn có thể sẽ nhận được một lỗi nói rằng bạn không thể có cả 32 bit và 64 bit được cài đặt cùng một lúc, để làm được việc này bạn phải use the /passive flag

Để cài đặt Microsoft ACE OLEDB Provider 32-bit trên một máy chạy Office 2010 64-bit:

  • AccessDatabaseEngine.exe/thụ động

Để cài đặt Microsoft ACE OLEDB Provider 64-bit trên một máy chạy Office 2010 32-bit:

  • AccessDatabaseEngine_X64.exe/thụ động
+1

Xem tại đây để tìm mẹo "/ thụ động" nổi tiếng để cài đặt cả trình điều khiển 32 bit và 64 bit trên cùng một máy: http://blog.codefluententities.com/2011/01/20/microsoft-access-database -engine-2010-redistributable/ –

+0

Ồ WOW! Tôi ước rằng tôi biết rằng một năm trước đây khi tôi đã cố gắng tìm ra cách để có được 32 bit với văn phòng 64 bit. Cảm ơn, tôi đã cập nhật câu trả lời của mình với các chi tiết từ trang web đó. –

+0

Xin lỗi vì câu trả lời muộn, tôi không nhận được bất kỳ thông báo nào. Nếu tôi thêm trình điều khiển 64 bit, nó sẽ nói chuyện với một phiên bản 32 bit của Office? Khác điều này không giúp đỡ. Cảm ơn, Dave – Dave