Почему происходит сбой Outlook при использовании взаимодействия с Office? - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь использовать взаимодействие 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 Build 17115.1

РЕДАКТИРОВАТЬ: Протестировано на Windows 7 и не может воспроизвести сбой. Я знаю, что у меня это работало в Windows 10 в какой-то момент. Я переустановил свою ОС, и она все еще вылетает. Я переношу это на типичный пользовательский опыт Microsoft, если у кого-то нет идей, как это исправить.

1 Ответ

0 голосов
/ 16 мая 2018

Outlook является одноэлементным, поэтому создание нового объекта вернет существующий объект, если Outlook уже запущен.

В вашем случае вам также необходимо предоставить пространство имен для него

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