Не найдено определение для GetActiveObject из System.Runtime.InteropServices.Marshal C # - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь подключиться к работающему экземпляру Excel, но когда я пытаюсь использовать следующий фрагмент кода:

using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

public Application StartExcel()
{
    Application instance = null;
    try
    {
        instance = (Application)Marshal.GetActiveObject("Excel.Application");
    }
    catch (COMException ex)
    {
        instance = new ApplicationClass();
    }

    return instance;
}

Я нашел похожие фрагменты в Интернете, но когда я компилирую этот код, яполучить следующую ошибку:

ошибка CS0117: «Маршал» не содержит определения для «GetActiveObject».

Я не знаю почему, потому что у меня есть следующееПакеты NuGet: - Microsoft.Office.Interop.Excel - System.Runtime.InteropServices

1 Ответ

1 голос
/ 19 сентября 2019

Это доступно только для .Net Framework, но не для .Net Core.Пожалуйста, проверьте тип проекта .Net.

https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.marshal.getactiveobject?view=netframework-4.8&viewFallbackFrom=netcore-2.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...