使用codeproject中提供的示例,我正在努力找出在哪里可以找到对Microsoft.Office.Core库的引用。
我收到错误消息“找不到引用的组件'Microsoft.Office.Core'。”
我在此系统上仅安装了Office 2007企业版和Outlook 2003。这可能是这个原因吗?否则,我应该引用哪个特定的dll?
使用codeproject中提供的示例,我正在努力找出在哪里可以找到对Microsoft.Office.Core库的引用。
我收到错误消息“找不到引用的组件'Microsoft.Office.Core'。”
我在此系统上仅安装了Office 2007企业版和Outlook 2003。这可能是这个原因吗?否则,我应该引用哪个特定的dll?
Answers:
您可以添加的引用Microsoft.Office.Core
从COM组件加入的参考添加引用窗口标签Microsoft Office 12.0 Object Library
。屏幕快照将显示您需要的组件。
您需要下载并安装所用Office版本的PIA(主要互操作程序集)。一旦安装,您就可以添加对项目的引用,可以从“添加引用”对话框中获得它们。这里是下载它们的链接...
如果某人在.NET中没有引用。COM(选项卡)或未在安装Visual的计算机上安装Office可以:
添加引用来自:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\PIA\Office15
现在有一个nuget包。
https://www.nuget.org/packages/NetOffice.Core.Net40/
首先,我没有在COM中找到办公室,所以尝试了这个nuget并成功了!
您是否真的去过引用,并向'Microsoft.Office.Core'库添加了.NET引用?如果您下载了示例应用程序,则答案为是。如果是这种情况,请按照文章中的建议进行操作:
如果您的系统没有Microsoft Office Outlook 2003,则可能必须更改“ OutlookConnector”项目使用的引用。也就是说,如果收到描述为“找不到命名空间名称'Outlook'的类型”的生成错误,则可能没有Office2003。只需展开项目引用,删除受影响的项目,然后添加适用于您的系统的COM库。如果有人动态地处理此问题,我很想知道您已经完成了。
那应该解决您的问题。如果没有,请告诉我们。
您可以使用此NuGet软件包,该软件包除了Office程序集外还包括互操作程序集。
https://www.nuget.org/packages/Bundle.Microsoft.Office.Interop/
当我尝试将旧的C#项目打开到Visual Studio 2017版本时,我遇到了同样的问题。当您尝试打开使用VS的早期版本创建的项目并使用最新版本打开它时,通常会出现此问题。 我所做的是,打开项目并从项目中删除引用,然后添加了Microsoft Outlook 12.0对象库和Microsoft Office 12.0对象库Microsoft Outlook 12.0对象库
我也有麻烦 我去添加引用,COM选项卡,选择Microsoft 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()));