Excel AddIn在设计器代码中抛出异常

时间:2009-09-09 05:17:41

标签: visual-studio-2008 excel vsto

我正在尝试开发一个AddIn for Excel 2007,并且拥有一个充满代码的解决方案,可以在其他人的计算机上执行和调试。当我尝试在我的机器上的Visual Studio中开始调试时,Excel在加载我的AddIn时给出了一个错误:

“无法找到或找到AddIn。”

然后我点击Details按钮查看堆栈跟踪:

Cannot access a disposed object.


************** Exception Text **************
System.ObjectDisposedException: Cannot access a disposed object.
   at Microsoft.Office.Tools.SmartTagCollection.BeginInit()
   at ExcelAddIn1.ThisAddIn.BeginInitialization() in C:\Documents and Settings\james.cox\My Documents\Visual Studio 2008\Projects\ExcelAddIn1\ExcelAddIn1\ThisAddIn.Designer.cs:line 129
   at ExcelAddIn1.ThisAddIn.InitializeDataBindings() in C:\Documents and Settings\james.cox\My Documents\Visual Studio 2008\Projects\ExcelAddIn1\ExcelAddIn1\ThisAddIn.Designer.cs:line 66
   at Microsoft.VisualStudio.Tools.Office.EntryPointComponentBase.Microsoft.VisualStudio.Tools.Applications.Runtime.IEntryPoint.InitializeDataBindings()
   at Microsoft.VisualStudio.Tools.Applications.AddInAdapter.ExecutePhase(ExecutionPhases executionPhases)
   at Microsoft.VisualStudio.Tools.Office.Internal.OfficeAddInAdapter.InitializeEntryPointsHelper()

我实际上已经创建了一个Excel AddIn类型的全新解决方案,并且根本没有更改代码中的任何内容,仍然会出现相同的错误。

这是什么意思?谷歌搜索,我看到有人在MSDN上似乎有同样的问题,但不幸的是从来没有得到他的问题的答案。有没有人见过这个问题?

1 个答案:

答案 0 :(得分:3)

我在今晚尝试在Excel 2007中测试RibbonX功能时遇到了同样的问题。我注意到在异常消息中有一个智能标签,所以我拉起控制面板并将我的Office安装更改为不包含Smart Tag .NET Progammability支持,位于Customize安装窗口中的Office Tools下。在此之后,我的插件运行没有问题。

也可以通过从插件中删除智能标记来解决问题。我相信这可以通过编辑ThisAddIn.cs文件的Designer文件来完成,这些文件可以通过使用Visual Studio中的Project,Show All Files选项显示。

在ThisAddIn.Designer.xml中,您应删除以下行:

<hostitem:hostControl hostitem:name="VstoSmartTags" hostitem:identifier="VstoSmartTags" hostitem:type="Microsoft.Office.Tools.SmartTagCollection" hostitem:primaryCookie="VstoSmartTags" hostitem:modifier="Internal" />

然后删除ThisAddIn.Designer.cs文件中对VstoSmartTags的任何引用。但是警告的话,我实际上没有尝试过,所以它可能无法正常工作。