У нас есть утилита, написанная на 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?