即使我引用它,Visual Studio也不会将我的组件(从DLL)添加到工具箱中

问题描述 投票:13回答:8

如标题中所述,我在Visual Studio项目中复制了我的DLL,将其设置为“content”和“始终复制”。添加了对此DLL的引用并将其设置为“本地复制”。

我成功地通过代码将我的组件实例化为表单,但它没有出现在工具箱中,真的很无聊。

我该如何解决这个问题?

如果我直接将DLL项目链接到这个项目它可以工作,但现在我将DLL视为“外部”,因此它不是DLL项目的同一解决方案的一部分。

visual-studio-2010 dll components custom-component toolbox
8个回答
10
投票

我和@AndrewFinnell's solution有这个问题:

'c:.... \ XXXX.dll'中没有可以放在工具箱上的组件。

所以我用拖放解决了:

  • 打开Windows资源管理器并导航到DLL
  • 拖动DLL并将其放在工具箱中的Visual Studio上,准确地显示您希望组件出现的位置。

我还意识到某些组件可能与某些.NET Framework版本存在兼容性问题。例如,A Professional Calendar/Agenda View That You Will Use似乎不适用于.NET 4.5,而它适用于.NET 4。


9
投票
  • 在工具箱中单击鼠标右键。
  • 点击“选择项目...”
  • 点击“浏览...”
  • 导航到您的DLL,然后单击“打开”
  • 然后单击“确定”

然后应该显示您的组件


4
投票

我发现这样做的方式是:

  1. 添加dll,引用它
  2. 编译项目
  3. 保存解决方案并重新启动visual studio

然后控件显示在工具箱中(并不总是工作,我认为是一种视觉工作室错误)


1
投票

如上所述,

  1. 我在客户端项目中引用DLL:在解决方案资源管理器中右键单击>添加引用,此时自定义控件不会出现在工具箱中。
  2. 我保存并关闭客户端项目。
  3. 我重新启动Visual Studio 2012并重新打开客户端项目。现在自定义控件位于工具箱中。
  4. 我重新打开自定义控件项目,进行一些修改和编译。
  5. 最重要的是,我在DLL项目中所做的所有更改都自动在客户端项目中更新,而无需重做“添加引用”。

0
投票

这就是我做的。

从MSDN链接安装net 3.5图表下载后,我手动将3.5图表dll复制到我的项目并引用它们。然后,从工具箱的“选择项目”中,浏览到dll并将它们添加到工具箱中。确保在“选择项目”弹出窗口中选中“图表”复选框。

在这些之后,工具箱中的“图表”项应该可用并启用.NET 3.5项目。

注意(我使用的是Visual Studio 2010.我认为我的解决方案适用于2012年。)


0
投票

我遇到了同样的问题。我在Visual Studio 2010中工作。

我的用户控件库是用C#编写的,而我的项目我将它导入到Visual Basic中。

如果我的解决方案中有C#项目,则自动显示自定义用户控件。但是如果我只引用了DLL,它就不会将引用库中的自定义用户控件加载到“工具箱”中。

提到在资源管理器中查找文件并将其拖放到工具箱中的上述帖子解决了这个问题。这是一种非常奇怪的行为方式。 VB用户控件库不需要此步骤。

这是我过去两年来一直坐在燃烧器上的一个问题。

我会对之前的答案进行投票,但我还没有足够的代表。

这篇文章可以使用一些更好的标签,因为它被埋没在我的大部分谷歌搜索中。

所以

  1. 引用用户控件库
  2. 将DLL文件放入工具箱中。

我对此有一个问题是:如果您更改项目对DLL的引用(因为它移动)会发生什么,而不是尝试更新工具箱引用(通过从工具箱中删除控件并从中拖放DLL)新的位置)?


0
投票

我尝试了其他的答案(感谢大家!),但我遇到了这个问题,我会让大家知道我是如何解决它并在工具栏中显示我的自定义工具(在VS 2017中)。

  1. 将.ddl文件放在任何库解决方案中
  2. 然后我添加.ddl作为我所需项目的参考
  3. 构建项目并重新启动Visual Studio
  4. 然后,当我查看工具箱时,我的自定义工具箱名称出现在工具栏中,当我展开时,我得到以下消息 此组中没有可用的控件。将项目拖到此文本上以添加到工具栏 enter image description here
  5. 我拖动了.dll并删除了该文本,然后我的所有自定义工具都出现在我的工具箱中。

0
投票

并添加lib。到解决方案示例解压缩文件夹/ bin / debug中的文件夹,然后从该文件夹添加对象的引用,最后重建,退出,返回,从此解决方案文件夹/.../../拖放dll,它可能会出现。

© www.soinside.com 2019 - 2024. All rights reserved.