我正在尝试开发一个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上似乎有同样的问题,但不幸的是从来没有得到他的问题的答案。有没有人见过这个问题?
答案 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的任何引用。但是警告的话,我实际上没有尝试过,所以它可能无法正常工作。