【问题标题】:.NET VSTO 'RibbonControlSize' is abiguous error.NET VSTO 'RibbonControlSize' 是模棱两可的错误
【发布时间】:2016-09-24 05:45:42
【问题描述】:

我在 VBA 中创建了一个项目,并尝试使用 VS2015 创建一个简单的 2010 VSTO Outlook 功能区按钮来打开文件。几个月前我创建它时一切正常,但现在我进入更改文件位置,我收到以下两个错误。根据我的发现,RibbonControlSize 似乎在 MS Office 2013+ 中使用,但这是针对 2010 年的。如果我右键单击参考并选择在对象浏览器中查看,那么我会看到 Office[14.0.0.0] 的参考和Office[15.0.0.0],它们都随着对 Microsoft.Office.Core 的引用来来去去。有关如何解决此问题的任何想法?

这是导致问题的行。

Me.button1.ControlSize = 
Microsoft.Office.Core.RibbonControlSize.RibbonControlSizeLarge

错误是......

Cannot find the interop type that matches the embedded type 'Microsoft.Office.Core.RibbonControlSize'.  Are you missing an assembly reference?  
'RibbonControlSize' is ambiguous in the namespace 'Microsoft.Office.Core'

更新

加载项是使用带有 Office 14 对象引用的 .NET 框架 4.0 构建的,但是 Office[15.0.0.0] 是自动添加的,我发现其他与以下文件相关的错误类似,但没有解决方案... GAC_MSIL\Office\15.0.0.0__71e9bce111e9429c\Office.dll

【问题讨论】:

    标签: .net vb.net vsto


    【解决方案1】:

    Office[14.0.0.0] 适用于 Office 2010

    Office[15.0.0.0] 适用于 Office 2013

    也就是说,因为您需要 2013+ 删除版本 14 的 dll。

    链接:

    1

    2

    所有 Microsoft 商业产品编号都与编程版本不一致。

    例如,Windows 7 的版本为 6.1

    【讨论】:

    • 我不能只删除 Office[15.0.0.0] 引用。它位于 Microsoft.Office.Core 内部,并在我添加 Microsoft Excel 14.0 对象库的引用时添加
    • 只删除 office 14.0.0.0 引用,因为它适用于 office 2010
    • 我更新了上面的问题以进行澄清。我看到我右键单击并选择在对象浏览器中查看的那些引用。
    【解决方案2】:

    该问题是由于从 COM 菜单中添加 Excel 引用引起的,而该引用本应从“程序集”菜单中添加。删除 Excel COM 引用并添加 Excel 程序集引用后,错误就消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      • 1970-01-01
      • 2014-04-24
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 2011-09-07
      相关资源
      最近更新 更多