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

时间:2014-10-16 12:13:41

标签: c# .net winforms toolbox

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

当我将此自定义控件从工具箱拖到winforms设计器时,我收到以下错误:

  

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

     

at VSLangProj.References.Add(String bstrPath)   ...................................

这有效:

1)将工具箱的本地参考添加到工具箱并将其拖到表单中是正常的。

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

问题:

将程序集添加到GAC时,如何让我的用户控件出现在设计器中?我是否错过了AssemblyInfo.cs文件中的任何参数或我错过的内容。

编辑:

在进一步分析中,我发现如果在提供的位置中不存在dll,则会发生此错误。例如,如果我将d:\Location1\UserControl.dll中的程序集添加到工具框中,那么在拖动控件时会抛出此异常,如果我将dll添加到工具箱后将其从此位置删除。

所以,我检查了这个程序集是否仍然存在于GAC中,或者没有使用visual studio developer命令提示符,并且发现dll存在于GAC中。但仍然无法找到为什么异常抛出

1 个答案:

答案 0 :(得分:0)

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