2011-06-21 29 views
14

Chúng tôi đã tạo một ứng dụng sử dụng Office 2007 (Excel 2007) để đọc dữ liệu từ trang tính Excel. Tuy nhiên. Tôi nhận thấy rằng khi tôi muốn triển khai ứng dụng trên một hệ thống có cài đặt Office 2003, nó bị treo vì các PIA khác (và các dll khác) cần phải được tham chiếu cho phiên bản văn phòng này.hỗ trợ các phiên bản Office khác nhau với Tự động hóa văn phòng

Tôi có cần phải biên dịch các phiên bản ứng dụng khác nhau của mình để có thể hỗ trợ các phiên bản Office khác nhau không hoặc có giải pháp thanh lịch hơn cho vấn đề này không?

Tôi sử dụng Visual Studio 2010 (C#) và nền tảng .Net 4.0.

Trả lời

18

Khi bạn đang sử dụng .NET 4, bạn có thể sử dụng "PIA" được nhúng (còn gọi là "Không có PIA"). Thay đổi tùy chọn trên tham chiếu Office để "Loại nhúng Interop" là True.

Miễn là bạn chỉ sử dụng các tính năng của Office được hỗ trợ trên máy mà bạn triển khai, bạn sẽ ổn thôi.

Nó cũng có nghĩa là: - Bạn không cần phải lo lắng về PIA bản thân không có mặt trên máy mục tiêu - Bất kỳ phương pháp hoặc tài sản đó là của VARIANT loại trong giao diện COM gốc hiện đang đại diện sử dụng dynamic trong mã của bạn, điều này có thể giúp cuộc sống của bạn đơn giản hơn

+0

Điều đó sẽ khiến cuộc sống của tôi cách đây 2 năm dễ dàng hơn nhiều. Viết vsto addins trong vs05 là một rắc rối. – asawyer

+0

Điều này giải quyết được vấn đề của tôi. Cảm ơn nhiều. – Chris

0

Bạn có thể tham chiếu PIA cho nhiều phiên bản văn phòng và tìm ra thời gian chạy để định tuyến cuộc gọi của bạn.

+0

Đây chính là điều bạn không nên làm: http://blogs.msdn.com/b/andreww/archive/2007/06/15/can-you-build-one -add-in-for-multiple-versions-of-office.aspx – Andy

+0

Đây thực sự là một ý tưởng ** tốt **. Tôi cũng muốn làm điều đó vì trong công ty của tôi, chúng tôi có các hệ thống với các phiên bản Office khác nhau được cài đặt. Và tôi muốn các ứng dụng của mình hỗ trợ ** mọi phiên bản **. – Bitterblue

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