从winforms工具箱添加控件会引发错误

本文关键字:错误 控件 winforms 工具箱 添加 | 更新日期: 2023-09-27 18:26:49

我在windows窗体中使用自定义控件。自定义控件的dll已安装在GAC中。我已将此自定义控件添加到我的工具箱中。

当我把这个自定义控件从工具箱拖到winforms设计器时,我得到了以下错误:

未能创建组件"UserControl"。错误消息如下:'System.Runtime.InteropServices.COMException(0X80004005):错误HRESULT E_FAIL已从对组件的调用中返回。

在VSLangProj.References.Add(字符串bstrPath)…………..

这项工作:

1) 将程序集的本地引用添加到工具箱中并将其拖动到窗体中可以正常工作。

2) 在项目中添加对dll的引用也解决了问题

问题:

当程序集添加到GAC时,如何使我的用户控件显示在设计器中?我是否遗漏了AssemblyInfo.cs文件中的任何参数或我遗漏的内容。

编辑:

经过进一步的分析,我发现如果dll不在提供的位置,就会发生这个错误。例如,如果我将程序集从d:'Location1'UserControl.dll添加到工具箱中,则在拖动控件时,如果我在将dll添加到工具箱后从此位置删除dll,则会引发此异常。

因此,我使用visual studio开发人员命令提示符检查了GAC中是否仍存在此程序集,并发现GAC中存在dll。但仍然找不到异常抛出的原因

从winforms工具箱添加控件会引发错误

我试图重现您的场景。我在工具箱中制作了一个新的GAC选项卡,并将dll从其GAC位置拖放到该选项卡,而不是将其部署到GAC的驱动器上的原始位置(如果我理解正确的话)。没有任何错误。使用Microsoft Visual Studio 2010 Ultimate版本10.0.40219.1 SP1Rel,Microsoft.NET Framework版本4.5.50938 SP1Rel。