繁体   English   中英

给定Visual Studio中的一个类,如何找出包含它的dll?

[英]Given a class in Visual Studio, how to find out which dll contains it?

致力于修改现有的.NET项目。 给定Visual Studio中的C#类,如何找出它有哪些DLL?

问题是我想在新项目中使用此类中的方法,因此我需要找到正确的DLL作为新项目的参考。

在对象浏览器中搜索您的类名(菜单视图 - >对象浏览器)。 程序集信息窗口将包含dll完整路径。

您可以在项目属性中查看程序集。 DLL的输出名称(类库项目生成的名称)在那里指定。

有些工具如ReSharper会建议添加using语句甚至添加对项目的引用。 看来你没有那样的东西。

添加Microsoft类的引用

在那种情况下(在我有工具之前),我谷歌搜索

class <ClassName> site:msdn.microsoft.com

例如

class Process site:msdn.microsoft.com

这让我进入了Process类 在MSDN页面上,它列出了命名空间和程序集:

Namespace:  System.Diagnostics
Assembly:  System (in System.dll)

在不同的项目中添加您自己的类的引用

  • 打开类定义(源代码)
  • 打开Solution Explorer
  • 单击“与活动文档同步”按钮
  • 与活动文档同步
  • 上移到项目
  • 打开属性( Alt + Enter
  • 查看应用程序/程序集名称

这可能是相当令人沮丧和恼人的 - 我发现自己处于这样一种情况,我需要回答OP的问题,而且上述答案都不适合我。

我有一个导入一些Roslyn DLL的程序。 后来,在我不确定哪些DLL真正需要之后,我试图找出哪些类在哪些DLL中。

例如,我的程序引用了类MSBuildWorkspace 导航到类声明我可以看到命名空间名称,该类的完全限定名称是Microsoft.CodeAnalysis.MSBuild.MSBuildWorkspace

按照@Spell的建议打开对象浏览器,并搜索Microsoft.CodeAnalysis.MSBuild.MSBuildWorkspace导致“搜索未找到结果”,我猜测必须是由于Visual Studio中的错误。

幸运的是,只搜索MSBuildWorkspace会找到该类,但它仍然没有告诉我哪个DLL包含该类。

所以我需要做的是在对象浏览器右下角的小面板中单击类名称(显示为链接)。 这导致左面板切换到DLL及其包含的类的视图。 现在我可以看到类MSBuildWorkspace在DLL Microsoft.CodeAnalysis.Workspaces ,右键单击它并选择Copy并将结果粘贴到文本编辑器中,提供了DLL的完整路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM