【问题标题】:Can an Excel VSTO 2010 add-in be run in Office 2007?Excel VSTO 2010 加载项可以在 Office 2007 中运行吗?
【发布时间】:2012-09-04 12:40:42
【问题描述】:

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

我们尝试在 2007 年安装它,但没有成功(功能区被列为正在运行的加载项,但它没有出现在 Excel 的功能区选项卡中)。我已经尝试按照this SO question 中提到的步骤(用 2007 参考 dll 替换 2010 参考 dll),但没有成功。

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

谢谢!

【问题讨论】:

    标签: c# vsto excel-2007 excel-2010


    【解决方案1】:

    呸。结果是功能区 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 互操作代码或多或少可以互换。您是否在 Excel Interop 14 中使用了 12 中没有的任何内容?

      两个项目可能看起来并不理想,但您可能需要走这条路。好处是您将能够或多或少地复制和粘贴所有内容,特别是如果您为 2007 项目编写所有内容,然后复制/粘贴到 2010 项目,而不是相反。

      希望对你有帮助

      【讨论】:

      • 感谢您抽出宝贵时间回复 JMK,并确认 v12 和 v14 应该兼容(只有一个 cell.DisplayFormat() 调用在从 切换回 12 时必须更改14)。一旦我们修复了功能区 XML 模式,一切都很好,所以我将省去尝试同时运行 Office 2007 和 2010 以备不时之需!
      • 没问题,我知道 Excel 互操作有时会有多痛苦,祝你好运!
      猜你喜欢
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      • 2011-06-17
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 2011-07-01
      相关资源
      最近更新 更多