无法添加对microsoft.office.interop.excel的引用

6
我正在使用Visual Studio 2010、.NET 4.5和Office 2010。我试图运行一些旧代码,但收到警告提示缺少一个程序集引用 Microsoft.Office.Interop.Excel==12.0.0.0Microsoft.Office.Interop.Access==12.0.0.0

经过搜索,我找到了这篇文章

我安装了主要互操作性组件,当我打开“添加/删除程序”时,它们会在我的控制面板中显示出来。然而,在Visual Studio的COM或.NET插件的添加引用下拉菜单中,我仍然没有可选的Interop程序集引用。另外,我也没有发现Interop程序集,当我导航到C:>Windows>assembly>GAC,这是前一篇文章所建议的。

在我的系统中搜索任何标记为'.Interop'的文件都找不到Office.Interop文件,这真的让人沮丧,因为它说已经安装了程序集。

在添加Microsoft.Excel和Microsoft.Access COM插件的简单引用后,仍然无法消除警告。
更新:我已经成功地解决了这个问题。Interop程序集的12.0版本是Office 2007本机的。我正在运行Office 2010,它有14.0版本的程序集。程序集是向后兼容的,但我无法在浏览器中“看到”它们,因为我必须选择我的项目在“Any CPU”上进行构建,而不仅仅是“x86”。

你的项目属性中目标框架是否正确? - Sam
GAC是C:> Windows > Microsoft.NET > assembly。 - terrybozzio
@Sam 是的,针对 .NET 4.0。 - Dobbes
@terrybozzio 在该路径的任何文件夹中都没有看到 Microsoft.Office.Interop 的任何内容。 - Dobbes
是的,你必须要“浏览”项目。此外,你也必须知道它们在哪里...不算太难,但也不是显而易见的。你还可以将你的解决方案添加到这里作为答案。 - RBarryYoung
3个回答

4

我已经成功地完成了它。Interop组件的12.0版本是Office 2007原生支持的。我正在运行Office 2010,该版本具有14.0版本的组件。这些组件向后兼容,但我无法在浏览器中“看到”它们,因为我必须选择我的项目以在“任何CPU”上构建,而不仅仅是“x86”。


2

1
当我回到一个非常旧的Office版本(从360到2000)时,我遇到了这个问题...我不得不从这里下载PIA可再分发文件:https://www.microsoft.com/en-us/download/details.aspx?id=3508
然后,我必须提取“PIARedist.exe”文件创建的.msi文件。我使用7-zip完成这个过程。(运行.msi安装程序无法正常工作,原因不太清楚...)我删除了对“Microsoft.Office.Interop.Excel”的引用,然后添加/浏览了从.msi文件中提取的“EXCELPIA.DLL”。这似乎解决了我的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接