.net核心中存在Microsoft.Office.Interop.Outlook错误



我有一个使用COM对象Microsoft.Office.Interop.Outlook访问Outlook的程序。

程序的第一部分创建一个新的OutlookApplication并获取allpublicfolders文件夹。

using Outlook = Microsoft.Office.Interop.Outlook;
Outlook.Application application = new Outlook.Application();
Outlook.Folder allPublicFolder = 
application
.Session
.GetDefaultFolder (Outlook.OlDefaultFolders.olPublicFoldersAllPublicFolders) 
as Outlook.Folder;

该程序最初以.NET Framework为目标,并按预期运行。但是,在我最近将其移动到.NET6之后,我在.Session部分下面得到了一条红色错误线

错误消息说明如下:

"错误CS1061"Application"不包含"Session"的定义,并且找不到接受"Application"类型的第一个参数的可访问扩展方法"Session"(是否缺少using指令或程序集引用?(">

有什么想法可以引起这个问题吗?

编辑:删除第二行后,即使是第一行(newOutlook.Application(((也会返回错误:"无法将类型为"System_ComObject"的COM对象强制转换为接口类型为"Microsoft.Office.Interloop.Outlook.Application"。此操作失败,因为对IID为"{00063001-0000-0000-C000-000000000046}"的接口的COM组件的QueryInterface调用由于以下错误而失败:找不到元素。(0x8002802B(TYPE_E_ELEMENTNOTFOUND((";

我刚刚尝试在VS2022中创建一个基于.net 6的控制台应用程序,在调试器下编译和运行应用程序时没有遇到任何问题。我这边一切都很顺利。以下是我项目的文件内容:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RootNamespace>ConsoleApp3</RootNamespace>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<COMReference Include="Microsoft.Office.Interop.Outlook">
<WrapperTool>tlbimp</WrapperTool>
<VersionMinor>6</VersionMinor>
<VersionMajor>9</VersionMajor>
<Guid>00062fff-0000-0000-c000-000000000046</Guid>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
<EmbedInteropTypes>true</EmbedInteropTypes>
</COMReference>
</ItemGroup>
</Project>

确保目标平台设置为AnyCPU

错误是由于注册表编辑器中缺少组件[HKEYCLASSES_ROOT\Interface{00063001-0000-0000-C000-000000000046}]引起的。修复office没有帮助,但重新安装office创建了组件并解决了错误。

相关内容

  • 没有找到相关文章

最新更新