Excel VSTO 2010加载项能否在Office 2007中运行



我们创建了一个VSTO 2010项目,其中包含一个Excel功能区,运行良好,但现在我们的一些客户将运行Office 2007。

我们曾尝试在2007年安装它,但没有成功(功能区被列为正在运行的加载项,但它没有出现在Excel的功能区选项卡中)。我尝试过遵循这个SO问题中提到的步骤(用2007引用dll替换2010引用dll),但没有成功。

任何避免创建新的2007项目的建议(据我所知,这将涉及在我们的开发机器上卸载Office 2010,然后安装2007)都将非常感谢。

谢谢!

Gah。结果发现ribbon XML上的模式有问题,我们在将ribbon XML剥离为单个标签时发现了这个问题,以查看是否是XML中的任何控件等导致了不兼容。

我们使用(很可能是从一个例子中复制的)

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

但一旦我们把它改成:

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

功能区立即出现,这与功能区作为运行的外接程序出现但在Excel中不可见的症状相吻合。如前所述(有关详细信息,请参阅本SO文章),有必要使用v12 office和interop dll。

您可以并排安装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年的项目,而不是相反。

希望这能帮助

最新更新