如何从Visual Studio中删除重复的程序集选择“工具箱项”对话框?

时间:2016-09-29 15:06:58

标签: .net visual-studio visual-studio-sdk

我在“选择工具箱项”菜单项的“.NET Framework组件”选项卡中有重复的程序集:enter image description here

可以找到装配加载的完整代码here,但主要想法如下:

  • 用户文档中的探针组件
  • VS扩展中的探针组件
  • 包装组件附近的探针组件
  • 通过调用IToolboxService.AddToolboxItem()方法
  • 将工具箱项目加载到工具箱中

真正加载的实际dll是v16.1.2.0 v15.1.1.100和15.1.2.0在磁盘上不存在,我在磁盘和注册表中找不到这些基本程序集的痕迹。

如何从列表中删除过期的条目?

3 个答案:

答案 0 :(得分:2)

这种情况是由工具箱缓存损坏引起的。

要解决此问题,请尝试以下操作:

  • 关闭VS的所有实例
  • %LOCALAPPDATA%\Microsoft\VisualStudio\NN.N,其中NN.N是你正在使用的VS的版本
  • 删除所有扩展名为*.tbd的文件。这些文件是隐藏的,因此请确保您已启用the approprate setting

答案 1 :(得分:0)

使用gacutil.exe实用程序:https://msdn.microsoft.com/en-US/library/ex0ss12c(v=vs.110).aspx

您可能需要运行gacutil.exe /l来获取所有程序集的列表,然后找到要删除的程序集,然后运行gacutil.exe /ur ...各自的值。

答案 2 :(得分:0)

这些是注册的设计时组件/控件。这些是在 AssemblyFoldersEx

下的每个.NET框架的以下位置的注册表中指定的

以下是地点

[HKCU or HKLM]\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v{version}\AssemblyFoldersEx
[HKCU or HKLM]\SOFTWARE\Microsoft\.NETFramework\v{version}\AssemblyFoldersEx

[HKCU or HKLM]\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Silverlight\v3.0\AssemblyFoldersEx
[HKCU or HKLM]\SOFTWARE\Microsoft\Microsoft SDKs\Silverlight\v3.0\AssemblyFoldersEx

删除子键删除所有重复项。

希望这有帮助。