0

我正在尝试阅读电子邮件正文中嵌入图像的办公模板(.oft 文件)。我尝试使用读取内容的 MsgReader nuget 包,但无法管理正文中的图像。

我也尝试过使用 Microsoft.Office.Interop.Outlook,但这会在运行时引发以下错误:

错误:System.IO.FileNotFoundException:无法加载文件或程序集“office,版本=15.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c”。该系统找不到指定的文件。文件名:'office,版本=15.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c'

我正在努力寻找解决方案。在我的工作计算机上,我安装了 Office 365。在 about 选项卡中显示 Microsoft Outlook for Microsoft 365 MSO (16.0.12827.20200) 32-bit

到目前为止,根据我所阅读的内容,我尝试在 IIS 而不是 IIS Express 中运行我的原型项目,但这并没有解决问题。我是否需要安装特定版本的 Outlook 或某些重新分发文件?还是有更好的方法来做到这一点?

4

3 回答 3

0

错误:System.IO.FileNotFoundException:无法加载文件或程序集“office,版本=15.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c”。该系统找不到指定的文件。文件名:'office,版本=15.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c'

看来您也只需要对office.dll程序集的引用。例如,Microsoft Office library在 COM 引用部分中搜索:

添加 COM 引用对话框窗口

另外,我注意到您正在 IIS 下运行该解决方案。

到目前为止,根据我所阅读的内容,我尝试在 IIS 而不是 IIS Express 中运行我的原型项目,但这并没有解决问题。

以下是微软对此的声明:

所有当前版本的 Microsoft Office 都经过设计、测试和配置,可作为最终用户产品在客户端工作站上运行。他们假设一个交互式桌面和用户配置文件。它们不提供满足设计为无人值守运行的服务器端组件的需求所必需的可重入性或安全性级别。

Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定的行为和/或在此环境中运行 Office 时出现死锁。

在Office 服务器端自动化的注意事项文章中阅读有关此内容的更多信息。

下面列出了您的选择:

请注意,[MS-OXMSG]:Outlook 项目 (.msg) 文件格式在 MSDN 中进行了描述。

于 2020-07-08T14:24:39.097 回答
0

我无法让他进行互操作,但找到了一个可行的第三方解决方案:https ://downloads.aspose.com/email/net

这个nuget 包将正确读取包括图像在内的正文内容,而无需使用互操作。

于 2020-07-09T09:45:25.873 回答
0

将互操作类型与 .NET Core 一起使用时,请使用对特定 Office 对象库的 COM 引用,而不是 NuGet 包

在此处输入图像描述

在此处输入图像描述

并将Embed Interop TypesCopy Local设置为Yes

3

有关更多详细信息,请参阅.NET core 3.0 和 MS Office 互操作

于 2020-07-13T05:17:18.750 回答