日期:2014-05-19  浏览次数:21128 次

类型"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的其它版本