转自原文 xiaoanianMicrosoft.Office.Core 引用以及 Microsoft.Office.Core.MsoTriState 的问题

因为要做一个提取ppt文字的工程,第一次接触Office开发.

以下是源码:

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
public class Program
{
public static void Main(string[] args)
{
String fileName = "F://test.ppt";
Program.Parse(fileName);
}
public static void Parse(String fileName)
{
try
{
PowerPoint.Application pa = new PowerPoint.ApplicationClass();
PowerPoint.Presentation pp = pa.Presentations.Open(fileName,
Microsoft.Office.Core.MsoTriState.msoTrue,
Microsoft.Office.Core.MsoTriState.msoFalse,
Microsoft.Office.Core.MsoTriState.msoFalse);
Console.WriteLine("Open Success");
PowerPoint.TextFrame frame;
String text;
foreach (PowerPoint.Slide slide in pp.Slides)
{
foreach (PowerPoint.Shape shape in slide.Shapes)
{ if (shape.HasTextFrame == Microsoft.Office.Core.MsoTriState.msoTrue)
{
frame = shape.TextFrame;
if (frame.HasText == Microsoft.Office.Core.MsoTriState.msoTrue)
{ text = frame.TextRange.Text;
Console.WriteLine(text);
}
}
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}

代码倒挺简单,但是添加引用废了我半天的力气。其中,引用中出现以下内容:

(1).net中有Microsoft.Office.Interop.PowerPoint, Office

(2) com中有Microsoft.Office 1x.0 Object library

Microsoft.Office.Interop.PowerPoint肯定是要添加的.

但Office和Microsoft.Office 1x.0 Object library添加谁?

只添加Office足以(如上图中圈出的那个组件)!

实践证明,

(1)如果只添加Microsoft.Office 1x.0 Object library,会出现下面的错误:

错误 1 类型“Microsoft.Office.Core.MsoTriState”在未被引用的程序集中定义。必须添加对程序集“office, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”的引用

(2)如果Office和Microsoft.Office 1x.0 Object library都添加,就会出现下面的错误:

错误 1 类型“Microsoft.Office.Core.MsoTriState”同时存在于“E:/Program Files/Microsoft Visual Studio 9.0/Visual Studio Tools for Office/PIA/Office12/Office.dll”和“C:/Documents and Settings/Administrator/我的文档/Visual Studio 2008/Projects/PPTPaser/ConsoleApplication1/obj/Debug/Interop.Microsoft.Office.Core.dll”中

原因是MsoTriState在两个dll中都出现了。正确做法:只添加Office引用即可

Microsoft.Office.Core 引用以及 Microsoft.Office.Core.MsoTriState 的问题的更多相关文章

  1. .NET Core 首例 Office 开源跨平台组件(NPOI Core)

    前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...

  2. 如何安装 Microsoft Office 兼容包,以便您可以在早期版本的 Microsoft Office 中打开和保存 Office Open XML 格式

    https://support.microsoft.com/zh-cn/kb/923505 针对 Office 2003 的支持已终止 Microsoft 已于 2014 年 4 月 8 日终止了针对 ...

  3. 关于ASP .Net Core 引用dll 一

    一:ASP.Net Core 引用dll文件,不可以直接引用,必须在NuGet中引用才行. 二:如果想引用自己的dll文件,则需要注册NeGet账号,获取到API Key 才行,还需要下载NuGet安 ...

  4. .net core引用错误的Entity Framework而导致不能正常迁移数据的解决办法

    本人刚学.net core,因此在学习过程中会遇上许许多多的坑.每一位初学者最大的问题在于资料的查看不仔细或是没有正确理解里面的内容,导致在后面自己在不知道错误的情况下做了一个小动作.对于完全没有理解 ...

  5. 交叉引用:Microsoft.NET标准异常 和错误代码对照表

    简介 此表旨在帮助将Windows运行时应用程序错误代码交叉引用到Microsoft.NET标准异常,这些异常可以作为应用程序异常处理技术的一部分. 对照表 .NET Exception (Names ...

  6. Microsoft.DirectX.DirectSound.dll和Microsoft.DirectX.dll引用,导致项目无法调试问题

    最近在做录音功能,用到了Microsoft.DirectX.DirectSound.dll和Microsoft.DirectX.dll两个dll,但是引入后,无法调试项目 具体解决方法: 修改app. ...

  7. ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First

    ASP.NET Core 开发-Entity Framework Core 1.0 Database First,ASP.NET Core 1.0 EF Core操作数据库. Entity Frame ...

  8. ASP.NET Core 开发 - Entity Framework (EF) Core

    EF Core 1.0 Database First http://www.cnblogs.com/linezero/p/EFCoreDBFirst.html ASP.NET Core 开发 - En ...

  9. Working with Data » 使用Visual Studio开发ASP.NET Core MVC and Entity Framework Core初学者教程

    原文地址:https://docs.asp.net/en/latest/data/ef-mvc/intro.html The Contoso University sample web applica ...

随机推荐

  1. Filter学习(二)Filter使用Decorator设计模式

    在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可以使用Decorator(装饰器)模式对request.response对象进行包装,再把包装对象传给目 ...

  2. 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接)

    通过 mklink 命令可以创建文件或文件夹的链接,而这种链接跟快捷方式是不一样的.然而我们还可能会遇到其使用过程中的一些坑,本文将整理这些坑并提供解决方法.   0x00 背景介绍:mklink m ...

  3. 【DUBBO】 Dubbo内核实现之动态编译

    转载:http://blog.csdn.net/quhongwei_zhanqiu/article/details/41577483 我们运行的java代码,一般都是编译之后的字节码.Dubbo为了实 ...

  4. 几个中文排版web 类库

    1. typo.css http://typo.sofi.sh/ 2.  yue.css http://lab.lepture.com/yue.css/ 规范,统一才是开发的王道.

  5. [LeetCode系列]链表环探测问题II

    给定一个链表头, 探测其是否有环, 如果没有返回NULL, 如果有返回环开始的位置. 环开始的位置定义为被两个指针指向的位置. 算法描述: 1. 快慢指针遍历, 如果到头说明无环返回NULL, 如果相 ...

  6. Ubuntu下手动安装Nvidia显卡驱动

    1. 下载最新版的nVidia驱动. http://www.nvidia.com/page/drivers.html 2.编辑blacklist.conf. sudo gedit /etc/modpr ...

  7. RK3288 HDMI增加特殊分辨率

    转载请注明出处:https://www.cnblogs.com/lialong1st/p/9174475.html CPU:RK3288 系统:Android 5.1 本帖以 HDMI 800x600 ...

  8. MOSS 2013研究系列---隐藏Ribbon

    我们在开发Sharepoint 2013 的时候,常常需要隐藏Ribbon,那个Ribbon是属于Office的特征,但是我们做门户的时候,大家都不希望看见到它,但是我们又离不开它,以管理的身份进行设 ...

  9. erlang的调试配置

    distel可以断点调试erlang,但是步骤非常繁琐 以下面的测试脚本为例说明 geometry.erl -module(geometry). -export([area/1]). area({re ...

  10. HDOJ5521(巧妙构建完全图)

    Meeting Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...