2008-12-31 27 views
5

Dường như nếu bạn cố gắng tham khảo các đối tượng COM Office (như bạn sẽ làm trong các môi trường phát triển khác), Visual Studio sẽ sai - and it just won't work.Tôi có phải ép buộc khách hàng của mình cài đặt Office Xxxx Primary Interop Assemblies không?

Vì vậy, bạn phải sử dụng thư viện kiểu đã chuyển đổi mà Microsoft đã chuyển đổi thủ công và cung cấp cho downloaddownloaddownload.

Bây giờ có vẻ như để ứng dụng của tôi chạy nó cần mã Office Interop, được chứa trong một assembly.

Bây giờ tôi không muốn ép buộc khách hàng của mình cài đặt Office 2007 Primary Interop Assemblies, Office 2003 Primary Interop Assemblies hoặc Office XP Primary Interop Assemblies. tôi muốn triển khai xcopy.

Nếu tôi quản lý để có được một bản sao của Microsoft của hội đồng interop, tôi có thể chỉ cần sao chép chúng vào bởi Bin/Debug và Bin/Release thư mục?

Nếu tôi bao gồm các hội đồng interop Office 2007, nó sẽ hoạt động nếu khách hàng có Office 95 được cài đặt, hoặc tôi phải bao gồm tất cả các phiên bản của Microsoft Office Interop dll của Microsoft đã từng xuất bản?

Trả lời

4

Đây là câu hỏi phổ biến với câu trả lời khá phức tạp. Mary Lee của MSFT là một nguồn lực lớn để biết thông tin về vấn đề này:

http://blogs.msdn.com/vsto/archive/tags/Deployment/default.aspx

Sử dụng ClickOnce để triển khai là gần nhất bạn sẽ nhận được một Xcopy cài đặt của bất kỳ ứng dụng được xây dựng trên VSTO.

Ngoài ra, kiểm tra bài đăng này:

http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/1666d2b0-a4d0-41e8-ad86-5eab3542de1e/

Cuối cùng, Misha có một blog tuyệt vời:

http://blogs.msdn.com/mshneer/archive/2006/01/05/deployment-articles.aspx

Các PIAs được cụ thể cho các phiên bản của Office bạn đang nhắm mục tiêu, vì vậy PIAs 2003 là cần thiết để nhắm mục tiêu năm 2003 và các PIA năm 2007 là cần thiết cho năm 2007. Tự động hóa Office 95 thông qua mã được quản lý là điều tôi chưa từng làm trước đây, nhưng tôi có thể tưởng tượng bạn đang trực tiếp tham khảo ing các loại thư viện để một RCW được tạo ra cho bạn và không có gì để làm với PIAs.

HTH

Colby Phi (MSFT)

0

Nếu tôi quản lý để có được một tổ chức của bản sao của các hội đồng interop của Microsoft, có thể tôi chỉ cần sao chép chúng vào bởi Bin/Debug và Bin thư mục/phát hành?

Nó làm việc cho tôi. Khi tôi biên soạn chương trình, tôi đã có nó tham khảo các tập tin interop (PIA) trong thùng rác và sau đó triển khai nó theo cách đó cho khách hàng.

Nếu tôi bao gồm các hội đồng interop Office 2007, nó sẽ hoạt động nếu khách hàng đã cài đặt Office 95?

Không, bạn có các tệp interop dll cho phiên bản Word bạn đang nhắm mục tiêu. Tôi cho rằng có thể viết mã của bạn để nó chcks phiên bản của từ đang chạy trên máy đó và tại thời gian chạy chọn interop chính xác, nhưng bạn cần phải bao gồm tất cả.

2

Từ kinh nghiệm của riêng tôi:

Nếu bạn muốn nhắm mục tiêu Office 2003 trở lên, sau đó bạn muốn sử dụng Office 2003 PIAs - và giới hạn mình với Office 2003 API. Mã sẽ chạy trên Office 2003 hoặc mới hơn. Bạn vẫn có thể gọi các chức năng Office 2007 bằng cách sử dụng sự phản chiếu, nhưng điều đó không dễ chịu.

Tôi tưởng tượng có cùng một câu chuyện nếu phiên bản cơ sở của bạn là Office 2000 - mặc dù tôi chưa thử nó, và tôi tin rằng phiên bản đầu tiên mà Microsoft cung cấp PIA là Office 2002 (XP).

Bạn có thể tạo hội đồng Interop của riêng mình cho năm 2000 và tôi không có lý do gì để tin rằng bạn không thể làm điều đó cho '95, mặc dù bạn là người đầu tiên tôi từng thấy yêu cầu hỗ trợ '95 ! Nó đi mà không nói rằng nếu bạn tạo ra hội đồng Interop của riêng bạn, bạn sẽ cần phải triển khai chúng với các ứng dụng của bạn.

Trong mọi trường hợp, bạn muốn sử dụng phiên bản cao nhất Office bạn có thể lấy đi làm cơ sở để bạn có thể hỗ trợ nhiều tính năng nhất có thể mà không cần phải suy nghĩ. Bạn nên phát triển mã của mình trên máy chỉ có chỉ phiên bản Office đó đã được cài đặt.

Trong trường hợp của mình, tôi phát triển cho Office 2003 và biết rằng người dùng của tôi cũng có 2003. Vì vậy, tôi yêu cầu họ đảm bảo rằng họ đã bật tính năng "Hỗ trợ lập trình .NET" (bạn có thể thực hiện thông qua Thiết lập Office 2003) thông qua Thêm/Loại bỏ Chương trình nếu bạn chọn tùy chọn Thay đổi). Tùy chọn đó về cơ bản cài đặt PIAs cho GAC. Đối với những người dùng không thể thực hiện điều này, chương trình cài đặt của tôi phát hiện sự thiếu các PIA và cài đặt chúng trước khi cài đặt ứng dụng của tôi (như đối với .NET framework).

XCOPY triển khai? Vâng, tôi cũng thích điều đó - nhưng hãy quên nó đi. Đối với một điều, nếu add-in của bạn sẽ làm việc trong chế độ bảo mật 'cao', sau đó bạn sẽ cần một mã ký COM 'shim' để ngồi giữa mã của bạn và văn phòng, và rằng cần phải được đăng ký. Tôi tin rằng VSTO cung cấp shim của riêng mình, nếu bạn chọn để đi xuống con đường đó (tôi đã không, kể từ khi tôi cần thiết để có thể 'lái xe' Office từ đầu thay vì dựa vào người dùng để bắt đầu ứng dụng).

Triển khai - và xử lý việc cài đặt & vấn đề bảo mật - là một trong những phần khó nhất của Office Add-in development với .NET, và đó là một kicker thực sự đến đúng lúc bạn nghĩ bạn đã hoàn thành.

My lời khuyên mạnh mẽ là để tiết kiệm cho mình ngày và tuần rắc rối, và xem Add-in Express. Gần đây tôi mới bắt gặp chính bản thân mình và đã tự đá mình từ đó vì nó có thể đã cứu tôi rất nhiều thời gian. Nó có một số lợi ích mà tôi cho rằng sẽ hữu ích cho bạn:

  1. Nó cho phép bạn tạo một bổ trợ thêm Office 2000 vào Office 2007 (xin lỗi, không phải '95), bất kể bạn đang sử dụng phiên bản nào có trên PC phát triển của bạn.
  2. Nó tạo ra một trình cài đặt cho bạn (mà thậm chí hoạt động trên Vista!), Mà chính nó là đáng giá.
  3. Nó đi kèm với khuôn mặt COM của riêng nó và được tích hợp trong phạm vi mà bạn không cần phải lo lắng về nó.
  4. Nó sẽ cho phép bạn có một bổ trợ duy nhất có giao diện menu/thanh công cụ trong các phiên bản Office lên đến năm 2003, nhưng giao diện dải trong năm 2007.

Lưu ý rằng tôi không có liên kết với Add-in Express (không phải là khách hàng gần đây), nhưng tôi vẫn chưa chuyển đổi dự án của mình sang sử dụng nó. Các thử nghiệm ban đầu mà tôi đã thực hiện khiến tôi tin rằng nó khá tốt - và chắc chắn là cách để đi cho các dự án vừa và nhỏ.

+0

+1 để đề cập đến thể hiện bổ trợ. Một điểm khác tôi muốn đề cập đến là bạn có thể tạo các khung tác vụ tùy chỉnh nhắm mục tiêu excel 2000 đến 2003. Tất cả điều này với một mức giá rất hợp lý. Một thay thế nguồn mở (mặc dù với ít kiểu cách) mà bạn có thể muốn xem xét là Excel DNA cũng rất tốt. Lưu ý: Tôi không liên kết với phần bổ sung Express hoặc dự án ExcelDNA theo bất kỳ cách nào (ngoài việc sử dụng cả hai) – quixver

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