c# - 为什么 Outlook 在使用 Office 互操作时崩溃?

标签 c# outlook office365 office-interop

我正在尝试将 Office 互操作与 C# 结合使用,但我遇到了一些困难。执行像我在下面包含的测试一样的测试似乎在启动 Outlook 并似乎与它连接时有效。问题是,如果我随后尝试打开 Outlook 窗口(它开始隐藏在托盘中),我会从 Outlook 收到一条错误消息,提示 The application was unable to start correctly (0xc0000142). 我没有如果在我启动我的应用程序之前 Outlook 已经在运行,则会出现此错误。我是不是做错了什么或者什么东西坏了?

using System;
using Outlook = Microsoft.Office.Interop.Outlook;

namespace OutlookInteropTest1
{
    class Program
    {
        static void Main(string[] args)
        {
            var app = new Outlook.Application();
            Console.ReadKey();
        }
    }
}

Visual Studio Community 2017 版本 15.2

Office 360​​ - Outlook 版本 1804 内部版本 9226.2156

Windows 10 内部版本 17115.1

编辑: 在 Windows 7 上对此进行了测试,但无法重现崩溃。我知道我曾在某个时候在 Windows 10 中使用过它。我重新安装了我的操作系统,但它仍然崩溃。除非有人对如何修复它有任何想法,否则我会根据典型的 Microsoft 用户体验来解决这个问题。

最佳答案

Outlook 是单例的,因此如果 Outlook 已在运行,则创建新对象将返回现有对象。

在您的情况下,您还需要为其提供命名空间

olApp = new Outlook.Application();
Outlook.Namespace ns = olApp.GetNamespace("MAPI");
ns.Logon();

关于c# - 为什么 Outlook 在使用 Office 互操作时崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50361486/

相关文章:

c# - 无法静默获取 token - Microsoft Graph API 获取用户的 Outlook 组

excel - 刷新 CSV 导入时 Power Query 无法添加列

java - 无法发送邮件: Could not convert socket to TLS;

c# - WPF 控件和边距与窗口大小成比例

html - 无法在 Outlook 2013 中将文本居中

vba - 当收件箱中的项目声明为邮件项目时,出现类型不匹配错误

sharepoint - 如何通过 Microsoft Graph API 访问 Sharepoint 站点的文档库?

c# - WCF 的 RESTful Web 服务示例

c# - 为什么使用带破折号图案的笔会导致 WPF 自定义 2D 绘图中出现巨大(!)性能下降?

c# - 从 WPF 中的窗口中删除控件