#.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
Удалите все дубликаты, удалив вложенные ключи.
Надеюсь, это поможет.