我正在尝试将 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/