【问题标题】:What is the recommended way of adding components downloaded from nuget to toolbox?将从 nuget 下载的组件添加到工具箱的推荐方法是什么?
【发布时间】:2025-12-29 07:50:06
【问题描述】:

我有一个 C# Windows 窗体项目,我在其中使用通过 nuget 获得的组件。现在我想知道在设计器中将此组件添加到工具箱的正确方法是什么。 我应该在我的硬盘上制作一个单独的组件副本并从那里添加它,还是应该从项目的包文件夹中添加它,或者可能做一些完全不同的事情?

我想知道是否:

  • 如果我在另一个项目中使用组件的更新版本,拥有组件的单独副本不会导致问题吗?
  • 使用包文件夹中的副本,然后删除、移动项目,这不会导致工具箱出现问题吗?

【问题讨论】:

  • 它是自动的,不要做任何事情。验证确保自动添加控件的设置:工具 > 选项 > Windows 窗体设计器 > 常规 > “自动填充工具箱”= True。
  • @HansPassant 那么我正在使用的组件一定有问题。它不会自动添加到工具箱中(是的,我将选项设置为 true)。也许这与组件是更大库的一部分并且您不必使用组件来使用库的事实有关(或者可能 nuget 包的作者必须为组件做一些事情添加到工具箱和myabe他\她没有这样做)。有问题的库是 OpenCVSharp (github.com/shimat/opencvsharp)。
  • OpenCV,叹息。这是在设计时无法找到的非常重要的依赖项。
  • @HansPassant 所以你说的是因为引用了OpenCV(在这里插入其他非.Net依赖)组件不能自动添加?
  • @HansPassant 我只记得根本无法在设计器中使用 Awesomium 组件,但可以添加(并在那里使用)OpenCVSharp 组件。所以我不确定这里是否适用非平凡的依赖关系。

标签: winforms visual-studio-2013 components nuget toolbox


【解决方案1】:

根据我在 cmets 中与 Hans Passant 的对话(因为他没有将其作为答案发布):

通常,当您从 nuget 获取 Windows 窗体组件时,它会自动添加到设计器工具箱中。唯一不应该发生的情况是“自动填充工具箱”设置为 false(工具 > 选项 > Windows 窗体设计器 > 常规)。

在我的特殊情况下,这不会发生。它可能与“在设计时找不到的重要依赖项”有关。但我并不完全同意这一点,因为我记得根本无法在设计器中使用这样的组件,但是让我问这个问题的组件可以在那里很好地使用。但是,这可能是针对不同问题的材料(并且可能在不同的网站上)。

【讨论】:

    最近更新 更多