我们已经创建了一个VSTO 2010项目,其中包含一个用于Excel的功能区,它可以很好地运行,但现在我们的一些客户将会运行Office 2007.
我们已经尝试在2007年安装它,没有运气(功能区被列为正在运行的加载项,但它不会出现在Excel的功能区选项卡中)。我已尝试按照this SO question中提到的步骤(用2007参考dll替换2010参考dll),但没有成功。
任何避免必须创建新项目的建议(据我所知,这将涉及在我们的开发机器上卸载Office 2010,而不是安装2007)将非常感谢非常。
谢谢!
答案 0 :(得分:5)
尔加。事实证明,功能区XML上的模式存在问题,当我们将功能区XML剥离到单个标签时,我们发现它是否是XML中的任何控件等导致不兼容。< / p>
我们正在使用(很可能从一个例子中复制)
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 dlls。
答案 1 :(得分: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项目,而不是相反。
希望这有帮助