C# 当我引用 MS.Office.Interop 时,为什么会出现编译器错误 Word.Application

C# Why do I get a compiler error Word.Application when I have a reference to MS.Office.Interop

我有一个奇怪的编译器错误,在我的命名空间中找不到名称 "Word"。然而,我有 using Microsoft.Office.Interop; 并且我还添加了 using Microsoft.Office.Interop.Word; 只是为了确定。

所以我使用了这行代码:

using Microsoft.Office;
using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Word;

Word.Application oWord = new Word.Application();

但我仍然得到编译器错误:

The type or namespace name 'Word' could not be found (are you missing a using directive or an assembly reference?)

不管我在 msdn 上看到的例子还是逐字逐句相同(没有双关语 ☺),都会发生这种情况。

所以我必须在代码中放入引用:

Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application();

任何人都可以告诉我这是为什么还是我做错了什么?提前致谢。

完全限定的类型名称是 Microsoft.Office.Interop.Word.Application,当您使用 using 指令 ​​(using Microsoft.Office.Interop.Word) 时,它可以让您仅使用名称 Application 作为完全限定类型的别名。注意 Application 是各种框架中的通用名称,当类型名称存在于其他命名空间时可能无法使用。这将导致模棱两可的错误。

您还可以使用别名语句来解决我上面提到的多个类型名称。

using WordApplication = Microsoft.Office.Interop.Word.Application;

如果您需要为多个 Office 互操作提供集成,可以通过添加另一条语句来实现。

using ExcelApplication = Microsoft.Office.Interop.Excel.Application;