Перестал работать EnvDTE.ToolBox.ToolBoxItems.Add () - не добавляет элементы панели инструментов на некоторых компьютерах - PullRequest
0 голосов
/ 13 июня 2019

У нас есть утилита, написанная на C #, которая автоматизирует создание значков компонентов на панели инструментов Visual Studio.Основная часть кода выглядит следующим образом:

EnvDTE.Window myToolBoxWindow = myDTE.Windows.Item(EnvDTE.Constants.vsWindowKindToolbox);
EnvDTE.ToolBox myToolBox = (EnvDTE.ToolBox)myToolBoxWindow.Object;

#region Create or recreate the tab

EnvDTE.ToolBoxTab myTab;
try
{
    myTab = myToolBox.ToolBoxTabs.Item(tabName);
    myTab.Delete();
    myTab = null;
}
catch
{
    myTab = null;
}

if (myTab == null)
    myTab = myToolBox.ToolBoxTabs.Add(tabName);
myTab.Activate();

#endregion

#region Add the library to the tab

EnvDTE.ToolBoxItem myToolBoxItem;

foreach (string myLibPath in libPaths)
    myToolBoxItem = myTab.ToolBoxItems.Add(tabName, myLibPath, EnvDTE.vsToolBoxItemFormat.vsToolBoxItemFormatDotNETComponent);

#endregion

Этот код работает годами со времен VS 2005, но больше не работает надежно.Кажется, проблемы начались с выпуска VS 2019. Иногда этот код создает только пустую вкладку tollbox с указанным именем, иногда код просто ничего не делает - хотя он выполняется без каких-либо исключений.

Что может бытьпричина такого поведения?Зависит ли результат выполнения этого кода от установленных компонентов VS или OS?

...