從我自己的經驗:
如果你想針對Office 2003和上面,然後你會使用Office 2003 PIA的 - 與自己限制到Office 2003的API。該代碼將在Office 2003上運行或更高版本。您仍然可以使用反射調用Office 2007函數,但這並不令人愉快。
我想這是大同小異的故事,如果你的基線版本的Office 2000 - 雖然我還沒有嘗試過,而且我相信微軟自己提供PIA的是Office 2002中(XP)的最早版本。
您可以創建自己的Interop組件2000年,我已經沒有理由相信,你不能爲'95做到這一點,雖然你是我見過的第一人問'95支持!不言而喻,如果您創建自己的Interop程序集,則需要將它們與您的應用程序一起部署。
在任何情況下,您都希望使用最高的辦公版本作爲您的基準,這樣您就可以支持儘可能多的功能,而無需訴諸反思。您應該在具有的機器上開發您的代碼,只有安裝了該版本的Office。
在我的情況下,我開發的是Office 2003,並且知道我的用戶也有2003.因此,我要求他們確保他們已啓用「.NET可編程性支持」功能(您可以通過Office 2003安裝程序通過添加/刪除程序,如果您選擇更改選項)。該選項基本上將PIA安裝到GAC。對於那些不能這樣做的用戶,我的安裝程序會檢測到缺少PIA並在安裝我的應用程序之前安裝它們(就像它爲.NET框架一樣)。
XCOPY部署?是的,我也想那樣 - 但忘記了。首先,如果你的加載項要在'高'安全模式下工作,那麼你需要一個代碼簽名的COM'shim'來放在代碼和Office之間,並且需要註冊。我相信如果你選擇沿着這條路走下去(我沒有,因爲我需要能夠從頭開始'驅動'Office而不是依靠用戶來啓動應用程序),VSTO提供了自己的墊片。
部署 - 並處理安裝&安全問題 - 是.NET的Office Add-in開發中最難的部分之一,它是一個真正的推動者,它在最後完成時就認爲你已經完成。
我的強建議是節省你自己的幾天和幾周的麻煩,並看看Add-in Express。我最近才碰到過這個問題,自那以後一直在踢我自己,因爲它能爲我節省很多時間。它有幾個好處,我覺得這是對你有用:
- 它允許你創建一個單一的外接靶向的Office 2000到Office 2007(對不起,不是95年),不管你發生什麼版本的有你的開發電腦。
- 它爲您創建一個安裝程序(甚至可以在Vista上運行!),這本身就是值得的。
- 它帶有自己的COM墊片,並集成到你不需要擔心它的程度。
- 它可以讓你有一個單獨的加載項,在Office版本高達2003的菜單/工具欄界面,但在2007年絲帶接口。
請注意,我與Add-in Express沒有聯繫(不是最近的客戶),但同樣我還沒有將我的項目轉換爲使用它。我所做的初步測試讓我相信這是相當不錯的 - 而絕對是中小型項目的選擇。
+1用於提及加載項快遞。另一點我想提到的是,您可以創建自定義任務窗格,針對Excel 2000到2003.所有這些都以非常合理的價格提供。一個開源的替代品(雖然沒有多少裝飾),你可能想看看的是Excel DNA,這也是非常好的。注意:我不以任何方式附屬於Add-in express或ExcelDNA項目(除了使用它們) – quixver 2012-06-11 14:13:11