Как удалить дублированные сборки из диалогового окна Visual Studio Choose Toolbox Items?

#.net #visual-studio #visual-studio-sdk

#.net #visual-studio #visual-studio-sdk

Вопрос:

У меня есть дублированные сборки на вкладке «Компоненты .NET Framework» пункта меню «Выбор элементов панели инструментов»: введите описание изображения здесь

Полный код для загрузки сборки можно найти здесь, но основная идея заключается в следующем:

  • Проверка сборки в пользовательских документах
  • Проверка сборки в расширениях VS
  • Исследуйте сборку рядом со сборкой пакета
  • Загрузите элементы toolbox в toolbox, вызвав IToolboxService.AddToolboxItem() метод

Фактическая dll, которая действительно загружена, — это v16.1.2.0.
v15.1.1.100 и 15.1.2.0 не существует на диске, и я не могу найти никаких следов этих элементарных сборок на моем диске и в реестре.

Как я могу удалить устаревшие записи из списка?

Комментарии:

1. В диалоговом окне отображается местоположение, из которого были загружены сборки, вы пытались удалить его из одного из этих местоположений, перезапустить Visual Studio и проверить, исчезло ли оно? Пример: первая загружается из расширения VS, расположенного в appdata local microsoft. .. w012gia.g0f

Ответ №1:

Эта ситуация вызвана поврежденным кэшем toolbox.

Чтобы исправить это, попробуйте выполнить следующее:

  • Закройте все экземпляры VS
  • Go do %LOCALAPPDATA%MicrosoftVisualStudioNN.N , где NN.N версия VS, которую вы используете
  • Удалите все файлы с *.tbd расширением. Эти файлы скрыты, поэтому убедитесь, что у вас включен параметр approprate.

Комментарии:

1. Я полагаю, вы имели в виду %LOCALAPPDATA%MicrosoftVisualStudioNN.N . Нет, файлов с этим расширением нет, и я никогда не видел таких файлов ни в MicrosoftVisualStudio одной папке любой версии.

2. @MikhailTymchukDX Это скрытые файлы. Просто чтобы быть уверенным — у вас включен «Показывать скрытые файлы»?

3. Черт возьми, они действительно скрыты! Я показал их, удалил, и теперь toolbox в порядке. Спасибо! Самое смешное, что я прочитал этот ответ так несколько раз и всегда думал, что он должен быть виден. Не могли бы вы отредактировать свой ответ, чтобы явно указать это?

Ответ №2:

Поиграйте с gacutil.exe полезность: https://msdn.microsoft.com/en-US/library/ex0ss12c (v = против 110).aspx

Вероятно, вам нужно выполнить запуск gacutil.exe /l , чтобы получить список всех сборок, затем найти те, которые вы хотите удалить, а затем запустить gacutil.exe /ur ... с соответствующими значениями.

Комментарии:

1. Спасибо за этот совет, но эти сборки не сглажены. Global Aseembly Cache заголовок столбца может сбивать с толку, но мои сборки загружаются в toolbox по путям, которые вы можете видеть на скриншоте, и я не вызываю gacutil для регистрации сборок системно.

Ответ №3:

Это зарегистрированные сборки / элементы управления во время разработки. Они указаны в реестре в указанном ниже расположении для каждой платформы .NET framework в разделе AssemblyFoldersEx

Вот местоположения

 [HKCU or HKLM]SOFTWAREWow6432NodeMicrosoft.NETFrameworkv{version}AssemblyFoldersEx
[HKCU or HKLM]SOFTWAREMicrosoft.NETFrameworkv{version}AssemblyFoldersEx

[HKCU or HKLM]SOFTWAREWow6432NodeMicrosoftMicrosoft SDKsSilverlightv3.0AssemblyFoldersEx
[HKCU or HKLM]SOFTWAREMicrosoftMicrosoft SDKsSilverlightv3.0AssemblyFoldersEx
  

Удалите все дубликаты, удалив вложенные ключи.

Надеюсь, это поможет.