前一段时间,安装了VS2017后,VS2010引用Office.Interop.Excel.dll报错,导致编译一直失败。本机安装的是Office2010
现象:
代码取下来默认引用的Office.Interop.Excel的版本是15.0.0.0,而本机是office2010 对应的应该是office14,但将引用更换成14.0.0遇到如下报错:
Predefined type'Microsoft.CSharp.RuntimeBinder.Binder' is not defined or imported
Interop type'Microsoft.Office.Interop.Excel.ApplicationClass' cannot be embedded. Use theapplicable interface instead.
但引用Microsoft.CSharp后会一直要求引用其他dll。
解决方法:
右击引用的Office.Interop.Excel,将属性中的Embed InteropType 设置为False(将嵌入互操作类型值改为false)
原因:
互操作性用来描述的是不同的程序借助同一套交换格式来交换数据,读写相同文件格式及采用相同协议的能力。
在默认情况下,VS会添加C#项目中的任何新互操作引用的此属性设为true
分析可借鉴:http://www.cr173.com/html/49543_1.html