“Microsoft”中不存在类型或命名空间名称“Office ”

6lilu9 2020-11-12 08:19:32
类似的问题,网上答案一大堆,
挨个试,没一个能用的
最主流的答案是:添加引用Microsoft Office 11.0 object Library 和 Microsoft Word 11.0 object Library
但我的问题是已经明确添加了呀。

疑惑如下:
图1和图2是一台电脑上的两个解决方案,图1和图2完全一样,但图2有问题
从中可以看出:图1的Microsoft下有五个命名空间,图2只有四个命名空间,缺少的那个正是Office


我推想,既然是同一台电脑,一个解决方案能用,就不是office安装不完整的原因
那可能什么原因呢
我特意看了看,这两个解决方案的引用有没有问题,下图显示引用的是同一个 dll文件呀


请高手解惑
...全文
12242 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
用npoi,自带的没npoi好用
6lilu9 2020-11-21
  • 打赏
  • 举报
回复
引用 10 楼 阳光下绿茵场 的回复:
[quote=引用 7 楼 U闲程序猿 的回复:]项目的环境和.net版本是不是一致的,或者一个通过nuget引入包,一个是本地引入的
应该是这样的 你可以看你一下你的nuget安装的包的版本号[/quote] 谢谢~
  • 打赏
  • 举报
回复
引用 7 楼 U闲程序猿 的回复:
项目的环境和.net版本是不是一致的,或者一个通过nuget引入包,一个是本地引入的
应该是这样的 你可以看你一下你的nuget安装的包的版本号
泡泡龙 2020-11-13
  • 打赏
  • 举报
回复
莫非你曾经安装过wps?
lorimoon 2020-11-12
  • 打赏
  • 举报
回复
引用 4 楼 6lilu9的回复:
[quote=引用 2 楼 lorimoon 的回复:]那就证明没正确引用吧。你看一下配置文件内的内容是否一致。
图三的各种属性都一致,不就说明是引用的一样的吗?[/quote] 这种情况应该以配置文件为准
6lilu9 2020-11-12
  • 打赏
  • 举报
回复
引用 2 楼 lorimoon 的回复:
那就证明没正确引用吧。你看一下配置文件内的内容是否一致。
图三的各种属性都一致,不就说明是引用的一样的吗?
6lilu9 2020-11-12
  • 打赏
  • 举报
回复
引用 1 楼 独立观察员 的回复:
清理后重新生成试试
试过 没用
wenoxy 2020-11-12
  • 打赏
  • 举报
回复
你用nuget引入一个microsoft excel的库啊
lorimoon 2020-11-12
  • 打赏
  • 举报
回复
那就证明没正确引用吧。你看一下配置文件内的内容是否一致。
独立观察员 2020-11-12
  • 打赏
  • 举报
回复
清理后重新生成试试
U闲程序猿 2020-11-12
  • 打赏
  • 举报
回复
项目的环境和.net版本是不是一致的,或者一个通过nuget引入包,一个是本地引入的
星星可比克 2020-11-12
  • 打赏
  • 举报
回复
32/64 不客气
c#using的用法 Using (1)引用命名空间 using作为引入命名空间指令的用法规则为: using Namespace; 在.NET程序,最常见的代码莫过于在程序文件的开头引入System命名空间,其原因在于System命名空间封装了很多最基本最常用的操作,下面的代码对我们来说最为熟悉不过: using System; 这样,我们在程序就可以直接使用命名空间类型,而不必指定详细的类型名称。using指令可以访问嵌套命名空间。 关于:命名空间 命名空间是.NET程序在逻辑上的组织结构,而并非实际的物理结构,是一种避免类名冲突的方法,用于将不同的数据类型组合划分的方式。例如,在.NET很多的基本类型都位于System命名空间,数据操作类型位于System.Data命名空间, (2)创建命名空间别名 using为命名空间创建别名的用法规则为: using alias = namespace | type; 其namespace表示创建命名空间的别名;而type表示创建类型别名。例如,在.NET Office应用,常常会引入Microsoft.Office.Interop.Word.dll程序集,在引入命名空间时为了避免繁琐的类型输入,我们通常为其创建别名如下: using MSWord = Microsoft.Office.Interop.Word; 这样,就可以在程序以MSWord来代替Microsoft.Office.Interop.Word前缀,如果要创建Application对象,则可以是这样, 而且还有一个好处就是,在一个.CS文件引入了不同的命名空间但是相同的类名的时候,用别名就可以解决这问题了。

110,557

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧