2011-08-17 44 views
0

幾年前,我爲Office 2003做了一些非常嚴格的Office加載項開發(Word,Excel和PowerPoint)。我使用Visual Studio 2003在C#中創建了一些共享的COM加載項。當時,我看着VSTO,但是因爲我無法完全記住它不適合我的需要而做出決定。使用和不使用VSTO開發Office 2007/2010加載項的相對優點是什麼?

我的加載項的升級是因爲現在,而不再需要支持的Office 2003 - 雖然他們仍然需要支持的Office 2007,而不僅僅是2010年

我知道事情已經顯著繼續前行,並且Visual Studio 2010對Office開發有更好的支持。我想確定是否應該使用VSTO重新實現我的加載項,或者繼續使用共享COM加載項路由。

如果有人知道每種方法的優缺點(超出營銷宣傳),我很樂意聽到它。

的事情,我覺得很沮喪第一次就(不使用VSTO,但可能無論如何適用):

  • 需要明確地管理COM引用(並調用 ReleaseComObject的無處不在)
  • 的需要COM墊片才能使安全模型正常工作
  • visual studio安裝項目只是簡單的沒有工作;我結束了 建立我自己的基於MSI的安裝程序
  • 缺乏文檔,特別是對所有上述;我花了 周試驗和錯誤並搜索隨機博客;在MS-提供 示例代碼完全忽略了這些現實問題

另外值得一提的是,最大限度地減少需要我的外接程序之前,要安裝的東西量是很重要的。我認爲讓我離開VSTO的其中一件事就是需要部署更多的東西(儘管我從來沒有下過這條路,但我不知道這種擔憂是否合理)。我真的希望能夠在一個標準的Windows 7(或Vista)建設部署,而不需要先安裝(說).NET 4

回答

1

部分答案,但太長,不適合在註釋:

零件我可以發表評論:

  • 設置項目VSTO加載項現在也實際工作並沒有關於如何正確地創建他們提供了很好的演練。
  • 辦公室對象模型的文檔很差,恕我直言,這對com和c#開發應該同樣惱人。因爲如果您使用.net framework v4,現在很多對象都會以動態方式返回,您將失去智能感知,這無助於您。解決方法是在可能的情況下將其轉換爲已知類型。
  • 爲了運行它顯然需要安裝相關的框架(由於動態性,v4是FAR比早期版本更好,在辦公組的壓力下添加的可選參數以及NoPIA設置)除此之外,還需要已安裝VSTO運行時。
  • 所有這些依賴關係可以被納入安裝程序,但須

您還沒有指定你用什麼來創建這些COM加載項(我的猜測是C++或VB6),我不能告訴他們有多大,他們需要多大程度的改革,所以如果現在是時候進行改變,那麼就不可能提供建議。遷移到C#的其中一個領域肯定會更加清潔和更好,這是與絲帶相關的任何事情。但我再也不能估計這對你有多相關。

+0

謝謝。 (我提到過我上次使用C#)。你沒有涉及的一件大事是COM引用的明確管理(ReleaseComObject等)。仍然有必要?我認爲是這樣 - 我不認爲這是一個無論語言/工具如何都可能消失的問題。 –

相關問題