读书人

类型quot;Excel.Workbookquot;在未被引用的程序

发布时间: 2012-01-06 22:55:18 作者: rapoo

类型"Excel.Workbook"在未被引用的程序集中定义?
我使用的是VS2005和Excel2003, 引用了COM库Microsoft Excel 11.0 Object Library.

问题是这样的

我有一个类库项目, 引用了EXCEL后, 建立了如下的方法, 用来关闭工作薄
using Excel = Microsoft.Office.Interop.Excel;
public static void CloseWorkbook(Excel.Workbook xBook, bool Save, string FileName)
{
if(!Save)
xBook.Close(false, Missing.Value, Missing.Value);
else
xBook.Close(Save, FileName, Missing.Value);
}


在另一个项目中, 我引用了这个生成的DLL, 但是在调用这个方法时出现编译错误

类型“Excel.Workbook”在未被引用的程序集中定义。必须添加对程序集“Interop.Excel, Version=1.5.0.0, Culture=neutral, PublicKeyToken=null”的引用。

但如果我不是引用DLL, 而是直接将类库项目添加到其解决方案中, 并直接引用该项目的话, 编译错误就不会出现. 这是怎么回事?

PS: 两个项目都引用了本机的Excel COM库

[解决办法]
应该是两个项目引用的Excel COM库不一致, 有时候问题是出现的很奇怪的, 把Excel引用重新加载一下, 再检查一下项目属性里的引用路径一项是不是设对了, 是不是引用了该DLL的其它版本

读书人网 >C#

热点推荐