2012-09-25 29 views
10

Tôi hiện đang làm việc trên một bổ trợ Excel 2010 mà trước đây là một bổ trợ Excel 2007. Một nơi nào đó trong quá trình chuyển đổi máy tính, bổ trợ đã được chuyển đổi tôi nghĩ.chuyển đổi một bổ trợ Excel 2010 vào một bổ trợ 2007 (cả VSTO)

Một số khách hàng của tôi đã tuyên bố rằng trình bổ sung này không hoạt động trên Excel 2007 nữa nên tôi đã cố gỡ lỗi nó trong VirtualBox với Excel 2007 và Visual Studio 2010 được cài đặt.

Bây giờ tôi nhận được Thông báo Lỗi:

Bạn không thể debug hoặc chạy dự án này, vì phiên bản theo yêu cầu của ứng dụng Microsft Office không được cài đặt.

Tôi bắt đầu một dự án bổ trợ Excel 2007 mới và cố gắng tìm ra sự khác biệt là gì và nảy ra ý tưởng rằng nó có liên quan gì với dll, vì vậy tôi đã thay đổi phần bổ sung 2010 cho đến khi nó trông giống như 2007 addin.

Tôi vẫn nhận được thông báo lỗi cho biết rằng dự án của tôi không thể gỡ lỗi được.

Có điều gì tôi có thể quên thay đổi không.

Viết một addin hoàn toàn mới không may là một tùy chọn.

Những câu hỏi này đã không giúp tôi cho đến nay:

  1. Excel Addin that works on Excel 2007 and 2010
  2. Deploying Office 2010 addin

Trả lời

8

Để có được VS 2010 làm việc với Office 2007 sửa đổi hồ sơ dự án (. csproj) để nó sẽ mở trong Office 2007 và không tìm Office 2010 khi chạy (do đó thông báo lỗi trên).

Đây là sự thay đổi các thiết lập dự án (Excel dụ):

Nguồn XPath:

// Dự án/ProjectExtensions/VisualStudio/FlavorProperties/ProjectProperties/@ DebugInfoExeName

Giá trị cũ (Office 2010):

DebugInfoExeName = "# Software \ Microsoft \ Office \ 14.0 \ Excel \ InstallRoot \ Đường dẫn # Excel.exe"

Giá trị mới (Office 2007):

DebugInfoExeName = "# Phần mềm \ Microsoft \ Office \ 12.0 \ Excel \ InstallRoot \ Đường dẫn # excel.exe"

Sau khi thay đổi thiết lập dự án này, khi bạn cháy lên các chương trình gỡ rối (F5) nó sẽ tải các ứng dụng Excel 2007 thay vì tìm kiếm cho Excel 2010.

+1

Cảm ơn, mẹo này hoạt động rất tốt. – Bongo

+3

Có vẻ như # ký hiệu chỉ bao quanh một đường dẫn đăng ký - có vẻ như về cơ bản nó nói "tìm đường dẫn này từ sổ đăng ký và nối thêm excel.exe vào nó." - Vì vậy, tôi quyết định sao chép các thiết lập registry của tôi từ hive 12.0 vào hive 14.0 và cho nó một shot. Lo 'và kìa! Nó hoạt động! - Bây giờ tôi có thể, với một tệp .sln/.csproj mở và gỡ lỗi cùng một add-in trên máy ảo Windows XP/Office 2007 của tôi như tôi có thể trên máy ảo Windows 7/Office 2010 của mình (sử dụng VSTO 4.0 của khóa học). – BrainSlugs83

6

Thông thường, khi tôi đang phát triển chống lại Tôi đã đặt tất cả các mã chung giữa các dự án vào một dự án duy nhất (thường là dự án lâu đời nhất) và sử dụng các tệp được liên kết, tôi thêm phổ biến cho phép tôi viết một bộ mã cốt lõi chung, được tóm tắt từ các yêu cầu của mỗi phiên bản Office. Điều này có nghĩa là tôi không còn chiến đấu với các cách khác nhau của VST O được biên dịch cho mỗi phiên bản Office. Điều này có thể được thực hiện dễ dàng hơn với các thư mục được chia sẻ và các máy ảo, vì vậy tôi có thể phát triển và thử nghiệm mà không cần nhiều máy tính. Nó không có nghĩa là duyên dáng, nhưng nó hoạt động tốt cho tôi. Điều này sẽ cho phép bạn phát triển VSTO Add-in của bạn chống lại cả Office 2007 và Office 2010 mà không có nhiều vấn đề.

+0

vì vậy, bạn có phiên bản khác nhau của Visual Studios trên máy ảo khác nhau, phải không? –

+1

@ T.Todua, tại thời điểm này, tôi không nhớ. Đã gần 6 năm kể từ khi tôi làm việc trên một bổ trợ VSTO. Tôi nhớ lại đang chạy một số máy ảo cho dự án, do đó, nó sẽ có ý nghĩa rằng tôi đã có một máy ảo cho mỗi môi trường tôi đã phát triển cho. –

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