2012-09-04 186 views
3

我們已經創建了一個VSTO 2010項目,其中包含一個用於Excel的ribbon bar,但運行良好,但現在我們的一些客戶將運行Office 2007.Excel VSTO 2010加載項可以在Office 2007中運行嗎?

我們試圖在2007年安裝它,但沒有運氣(功能區被列爲正在運行的加載項,但它並未顯示在Excel的功能區選項卡中)。我試過按照this SO question中提到的步驟(用2007引用dll替換2010引用dll),但沒有成功。

能避免不必創建一個新的2007年項目(按照我的理解將涉及我們的發展機卸載的Office 2010,並安裝2007代替)將非常感激任何建議。

謝謝!

回答

5

Gah。事實證明,這是功能區XML上的模式的一個問題,當我們將功能區XML剝離爲單個標籤時,我們發現了這種情況,看看它是否是導致不兼容的XML中的任何控件等。

我們使用(很可能是從一個例子複製)

xmlns="http://schemas.microsoft.com/office/2009/07/customui" 

但一旦我們把它改爲:

xmlns="http://schemas.microsoft.com/office/2006/01/customui" 

色帶立刻出現,其安裝在與帶狀的症狀顯示爲正在運行的加載項,但在Excel本身中不可見。如前所述(有關詳細信息,請參見this SO post),有必要使用v12 office和interop dll。

2

您可以安裝並排2007年和2010年的一面,並避免任何問題,通過運行以下命令行,或在一個批處理文件放上兩個之間的切換,無論是工作原理:

reg add HKCUSoftwareMicrosoftOffice14.0WordOptions /f /v NoReReg /t REG_DWORD /d 1 
reg add HKCUSoftwareMicrosoftOffice14.0ExcelOptions /f /v NoReReg /t REG_DWORD /d 1 
reg add HKCUSoftwareMicrosoftOffice14.0PowerPointOptions /f /v NoReReg /t REG_DWORD /d 1 
reg add HKCUSoftwareMicrosoftOffice14.0AccessOptions /f /v NoRepairNeeded /t REG_DWORD /d 1 

reg add HKCUSoftwareMicrosoftOffice12.0WordOptions /f /v NoReReg /t REG_DWORD /d 1 
reg add HKCUSoftwareMicrosoftOffice12.0ExcelOptions /f /v NoReReg /t REG_DWORD /d 1 
reg add HKCUSoftwareMicrosoftOffice12.0PowerPointOptions /f /v NoReReg /t REG_DWORD /d 1 
reg add HKCUSoftwareMicrosoftOffice12.0AccessOptions /f /v NoRepairNeeded /t REG_DWORD /d 1 

至於你的代碼,我發現12和14的Excel Interop代碼或多或少是可互換的。你是否在Excel Interop 14中使用任何不在12中的東西?

兩個項目可能看起來並不理想,但您可能需要走這條路線。好處在於,你可以或多或少地複製和粘貼所有內容,尤其是如果你爲2007年項目編寫所有內容,並將其複製/粘貼到2010年項目中,而不是相反。

希望這會有幫助

+0

感謝您花時間回覆JMK,並確認v12和v14應該兼容(只有一個cell.DisplayFormat()調用,我必須在從14切換回12時更改)。一旦我們修復了功能區XML架構,這一切都很好,因此我將節省下試圖在一個下雨天一起運行Office 2007和2010的對方! – Ted

+0

沒問題,我知道Excel Interop有時會有多痛苦,祝你好運! – JMK

相關問題