Microsoft.Office.Core引用缺less

使用codeproject中提供的示例,我正在努力找出哪里可以find对库Microsoft.Office.Core的引用。

我收到错误“被引用的组件”Microsoft.Office.Core“无法find。”

我只在这个系统上安装了office 2007企业版和outlook 2003。 这可能是这个原因吗? 否则,我应该引用哪个特定的DLL?

您可以通过添加Microsoft Office 12.0 Object Library引用,从添加引用窗口中的COM组件选项卡添加Microsoft Office 12.0 Object Library引用。 屏幕截图将显示你需要什么组件。

在这里输入图像说明

您需要下载并安装您正在使用的Office版本的PIA(主互操作程序集)。 一旦安装,您可以添加一个引用到您的项目,他们将从添加引用对话框中可用。 这里是下载它们的链接…

Office 2010 PIA

Office 2007 PIA

Office 2003 PIA

如果有人没有在.NET中的参考。 COM(选项卡)或没有办公室安装视觉的机器上可以做:

  1. 下载并安装: Microsoft Office开发人员工具
  2. 从以下添加参考:

     C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\PIA\Office15 

安装Office PIA(主互操作程序集)之后,添加对项目的引用 – >在.NET选项卡上的引用 – 组件名称“Office”

如果您使用的是Visual Studio 2012,为了使其工作,并为了引用Microsoft Office Core,您必须通过Visual Studio通过点击顶部菜单的Project,Add Reference,Extensionsbutton和检查办公室现在是(14.0)。

你真的去了你的引用,并添加到Microsoft.Office.Core库的.NET引用? 如果你下载了示例应用程序,答案是肯定的。 如果是这种情况,请按照文章中的build议:

如果您的系统没有Microsoft Office Outlook 2003,则可能需要更改“OutlookConnector”项目使用的引用。 也就是说,如果您收到一个描述为“无法find名称空间名称types的Outlook”的构build错误,那么您可能没有Office 2003.只需展开项目引用,删除受影响的项目,然后添加适合您的系统的COM库。 如果有人有一个dynamic的方式来处理这个问题,我会很高兴看到你已经完成了。

这应该可以解决你的问题。 如果没有,请告诉我们。

现在有一个nuget包。

https://www.nuget.org/packages/NetOffice.Core.Net40/

首先我没有在COM中find办公室,所以尝试了这个nuget,它的工作!

打开解决scheme的属性并单击发布。 然后,重新点击应用程序文件。 更改包含的先决条件。

我有同样的麻烦。 我去添加引用,COM选项卡,selectMicrosoft Office 15.0 Objetct库。 好的,我的问题结束了。

我的部分代码是:

 EXCEL.Range rango; rango = (EXCEL.Range)HojadetrabajoExcel.get_Range("AE13", "AK23"); rango.Select(); // EXCEL.Pictures Lafoto = (EXCEL.Pictures).HojadetrabajoExcel.Pictures(System.Reflection.Missing.Value); EXCEL.Pictures Lafoto = HojadetrabajoExcel.Pictures(System.Reflection.Missing.Value); HojadetrabajoExcel.Shapes.AddPicture(@"D:\GENETICA HUMANA\Reportes\imagenes\" + Variables.nombreimagen, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, float.Parse(rango.Left.ToString()),float.Parse(rango.Top.ToString()), float.Parse(rango.Width.ToString()), float.Parse(rango.Height.ToString()));