C#如何知道要添加什么程序集

How to know what assembly to add C#

我已经 运行 解决过这个问题几次,我想知道是否有人有比反复试验或搜索堆栈溢出更好的解决方案。

假设我们正在使用一些.net class Foo

Foo 位于 Bar.Baz 命名空间

下面的语句

using Bar.Baz;

不足以编译程序,我们缺少程序集引用。所以添加对System.Bar.Baz的引用它仍然不起作用所以在搜索互联网后我发现我实际上必须添加对Some.Other.dll的引用并且现在它编译了。

我的问题是,当通常的命名空间不起作用时,我如何知道什么命名空间映射到什么引用?

最近的问题是 The type or namespace name 'DbContext' could not be found 我不得不通过 Nuget 安装,而不是添加对 System.Data.Entity 的引用。

如果是.NET framework函数,你在MSDN上搜索一下,它会告诉你class/function存在于哪个程序集中。

您还可以使用 ReSharper,这是一个非常好的 Visual Studio 插件,它可以帮助您自动添加程序集。

如果您使用的是 Visual Studio 2013 或更高版本,发现 class 属于哪个命名空间的一种简单方法是使用 Peek 定义 功能.您可以在右键单击上下文菜单中轻松找到它。

在下面的屏幕中,我将它与KeyValuePair一起使用:

此外,请查看 documentation