我们的客户拥有为 .NET Framework 4+ 编译的 WinForms 组件的合法副本。最近他们让我们感到惊讶——他们不能再将它添加到 Visual Studio 2019 的工具箱中并在 VB.NET WinForms 项目中使用它。该组件的安装包根本不会自动在工具箱上创建图标而不报告任何错误,尽管之前它可以正常工作。
在调查此问题时,我们尝试手动将组件添加到工具箱中,但遇到了奇怪的安全警告。首先我们创建一个新的 Toolbox 选项卡,然后打开 Toolbox 上下文菜单并选择Choose Items...
打开Choose Toolbox Items
对话框的命令。如果我们Browse
在默认.NET Framework Components
选项卡上单击对话框中的按钮并在文件打开对话框中选择组件,则会出现以下安全警告:
安全警告:“C:...\Something.DLL”可能是从网络位置下载的,它可能会损害您的计算机。仅从您信任的发布者加载程序集。
还是要加载它?
如果我们允许通过单击 Sì(意大利语中的“是”)在此消息框中添加组件,它会出现在工具箱上,但仍无法将其添加到 WinForms 表单中。如果我们双击工具箱上的图标或将其拖放到表单上,它不会出现在表单上。唯一出现的是对解决方案资源管理器中项目的引用节点中组件的引用。
这很奇怪,因为相同的组件在我们客户的另一台电脑上运行没有任何问题。我们尝试重新安装组件,在之前的安装后清理磁盘和注册表中的所有残留物,检查组件数字签名,以管理员权限启动 VS,使用客户正在使用的替代防病毒软件(BitDefender)检查它 - 没有任何帮助。
唯一有助于解决问题的解决方法如下。如果将组件 DLL 复制到C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE
,则可以成功地将它们添加到工具箱中,而不会出现任何安全警告。
仅针对 Visual Studio 的一个实例的此问题的原因可能是什么?在调查此问题时,客户使用的是最新版本 v16.10.3。