尝试读取 Office Outlook 模板的内容时出现互操作异常
interop exception when trying to read the contents of an office outlook template
我正在尝试阅读电子邮件正文中嵌入图像的办公模板(.oft 文件)。我尝试使用 the MsgReader nuget package 读取内容,但无法管理正文中的图像。
我也尝试过使用 Microsoft.Office.Interop.Outlook,但这会在运行时抛出以下错误:
错误:System.IO.FileNotFoundException:无法加载文件或程序集 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'。该系统找不到指定的文件。
文件名:'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'
我正在努力寻找解决方案。在我的工作计算机上,我安装了 Office 365。在“关于”选项卡中显示 Microsoft Outlook for Microsoft 365 MSO (16.0.12827.20200) 32-bit
到目前为止,根据我所阅读的内容,我已经尝试 运行 我在 IIS 中而不是 IIS Express 中的原型项目,但这并没有解决问题。我是否需要安装特定版本的 Outlook 或某些重新分发文件?或者有更好的方法吗?
Error: System.IO.FileNotFoundException: Could not load file or assembly 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'. The system cannot find the file specified. File name: 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'
看来您还需要引用 office.dll
程序集。例如,在 COM 引用部分搜索 Microsoft Office library
:
此外,我注意到您运行在 IIS 下解决了这个问题。
So far based on what i have read, i have tried running my prototype project in IIS instead of IIS Express, but this did not resolve the problem.
Microsoft 对此的声明如下:
All current versions of Microsoft Office were designed, tested, and configured to run as end-user products on a client workstation. They assume an interactive desktop and user profile. They do not provide the level of reentrancy or security that is necessary to meet the needs of server-side components that are designed to run unattended.
Microsoft does not currently recommend, and does not support, Automation of Microsoft Office applications from any unattended, non-interactive client application or component (including ASP, ASP.NET, DCOM, and NT Services), because Office may exhibit unstable behavior and/or deadlock when Office is run in this environment.
在 Considerations for server-side Automation of Office 文章中阅读更多相关信息。
您的选择如下:
- 使用低级别 API 可以 运行 在服务下 - 扩展 MAPI 或 EWS,请参阅 Start using web services in Exchange 了解更多信息。
- 使用专为服务器端执行而设计的第三方组件。
请注意,[MS-OXMSG]: Outlook Item (.msg) File Format 在 MSDN 中有描述。
我无法让他的互操作工作,但找到了一个有效的第三方解决方案:https://downloads.aspose.com/email/net
this nuget 包将正确读取包括图像在内的正文内容,无需使用互操作。
在 .NET Core 中使用互操作类型时,使用对特定 Office 对象库的 COM 引用,而不是 NuGet 包:
并设置嵌入互操作类型和复制本地到是:
有关详细信息,请参阅 。
我正在尝试阅读电子邮件正文中嵌入图像的办公模板(.oft 文件)。我尝试使用 the MsgReader nuget package 读取内容,但无法管理正文中的图像。
我也尝试过使用 Microsoft.Office.Interop.Outlook,但这会在运行时抛出以下错误:
错误:System.IO.FileNotFoundException:无法加载文件或程序集 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'。该系统找不到指定的文件。 文件名:'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'
我正在努力寻找解决方案。在我的工作计算机上,我安装了 Office 365。在“关于”选项卡中显示 Microsoft Outlook for Microsoft 365 MSO (16.0.12827.20200) 32-bit
到目前为止,根据我所阅读的内容,我已经尝试 运行 我在 IIS 中而不是 IIS Express 中的原型项目,但这并没有解决问题。我是否需要安装特定版本的 Outlook 或某些重新分发文件?或者有更好的方法吗?
Error: System.IO.FileNotFoundException: Could not load file or assembly 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'. The system cannot find the file specified. File name: 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'
看来您还需要引用 office.dll
程序集。例如,在 COM 引用部分搜索 Microsoft Office library
:
此外,我注意到您运行在 IIS 下解决了这个问题。
So far based on what i have read, i have tried running my prototype project in IIS instead of IIS Express, but this did not resolve the problem.
Microsoft 对此的声明如下:
All current versions of Microsoft Office were designed, tested, and configured to run as end-user products on a client workstation. They assume an interactive desktop and user profile. They do not provide the level of reentrancy or security that is necessary to meet the needs of server-side components that are designed to run unattended.
Microsoft does not currently recommend, and does not support, Automation of Microsoft Office applications from any unattended, non-interactive client application or component (including ASP, ASP.NET, DCOM, and NT Services), because Office may exhibit unstable behavior and/or deadlock when Office is run in this environment.
在 Considerations for server-side Automation of Office 文章中阅读更多相关信息。
您的选择如下:
- 使用低级别 API 可以 运行 在服务下 - 扩展 MAPI 或 EWS,请参阅 Start using web services in Exchange 了解更多信息。
- 使用专为服务器端执行而设计的第三方组件。
请注意,[MS-OXMSG]: Outlook Item (.msg) File Format 在 MSDN 中有描述。
我无法让他的互操作工作,但找到了一个有效的第三方解决方案:https://downloads.aspose.com/email/net
this nuget 包将正确读取包括图像在内的正文内容,无需使用互操作。
在 .NET Core 中使用互操作类型时,使用对特定 Office 对象库的 COM 引用,而不是 NuGet 包:
并设置嵌入互操作类型和复制本地到是:
有关详细信息,请参阅