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

How to remove duplicated assemblies from the Visual Studio Choose Toolbox Items dialog?

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

可以找到程序集加载的完整代码here,但主要思想如下:

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

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

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

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

这种情况是工具箱缓存损坏造成的。

要修复它,请尝试以下操作:

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

这些是注册的设计时程序集/控件。这些在 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

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

希望对您有所帮助。