Отладка VSTO с помощью командного аргумента - PullRequest
0 голосов
/ 21 ноября 2018

Я занимаюсь разработкой надстройки для Excel и вижу некоторые ошибки, которые появляются, когда люди запускают Excel, открывая книгу.Если они запускают Excel, а затем открывают книгу, все в порядке, но в остальном есть проблемы.

Проблема в том, что я не знаю, как это отладить, так как я не могу запустить отладчик сАргумент команды Excel (насколько я знаю).

Я добавлю некоторые детали в соответствии с просьбой:

Внутри ThisAddIn.cs у меня есть 2 блока кода, которые вызывают у меня проблемы.

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    try
    {
        if (isStarted) return;

        var xl = this.Application;
        xl.WorkbookOpen += WorkbookOpened;
        xl.SheetActivate += Workbook_SheetActivate;

        var workbook = Application.ActiveWorkbook;

        WorkbookOpened(workbook);

        isStarted = true;
    }
    catch (Exception ex)
    {
        logger.LogIt($"Error 01 - {ex.Message}");
    }
}

и:

private void WorkbookOpened(Excel.Workbook workbook)
{
    try
    {
        if (!isStarted)
        {
            var xl = this.Application;
            xl.WorkbookOpen += WorkbookOpened;
            xl.SheetActivate += Workbook_SheetActivate;

            isStarted = true;
        }

        int key = Application.Hwnd;

        dynamic srVers = null;

        if (workbook.CustomDocumentProperties.Count == 0) return;

        var srType = workbook.CustomDocumentProperties("InternalDocType");

        try
        {
            srVers = workbook.CustomDocumentProperties("Version");
        }
        catch (Exception)
        {
            srVers = null;
        }

        if (srType.Value != "OurType") return;

        Globals.Ribbons.prRibbon.WorkbookOpened(workbook);
    }
    catch (Exception ex)
    {
        logger.LogIt($"Error 06 - {ex.Message}");
    }
}

Когда кто-то запускает Excel и открывает рабочую книгу, ошибок нет.Однако, если кто-то открывает Excel, открывая книгу (дважды щелкнув в проводнике или щелкнув правой кнопкой мыши Excel и выбрав книгу), я получаю сообщение об ошибке 06, затем ошибка 01, оба с «Ссылка на объект не установлена ​​на экземпляр объекта."

Есть предложения?

1 Ответ

0 голосов
/ 30 ноября 2018

@ ESDictor, вы можете напрямую передать путь к файлу Excel в качестве аргумента командной строки в Visual Studio. enter image description here

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