给定 Visual Studio 中的 class,如何找出哪个 dll 包含它?
Given a class in Visual Studio, how to find out which dll contains it?
正在修改现有的 .NET 项目。给定 Visual Studio 中的 C# class,我如何找出哪个 DLL 拥有它?
问题是我想在新项目中使用这个class中的方法,所以我需要找到正确的 DLL 添加作为新项目的参考。
有一些工具,如 ReSharper,会建议添加 using
语句,甚至添加对项目的引用。看来你没有这样的东西。
为 Microsoft 添加参考 class
在那种情况下(在我有工具之前),我 google for
class <ClassName> site:msdn.microsoft.com
例如
class Process site:msdn.microsoft.com
这让我想到了 Process class。在 MSDN 页面上,它列出了命名空间和程序集:
Namespace: System.Diagnostics
Assembly: System (in System.dll)
在不同的项目中添加您自己的引用class
- 打开class定义(源代码)
- 打开解决方案资源管理器
- 单击 "Sync with active document" 按钮
- 移至项目
- 打开属性(Alt+Enter)
- 查看Application/Assembly姓名
您可以在项目属性中看到程序集。 DLL 的输出名称(这是 Class 库项目生成的名称)在此处指定。
在对象浏览器(菜单视图 -> 对象浏览器)中搜索您的 class 名称。
程序集信息window会包含dll完整路径
这可能相当令人沮丧和恼火 - 我发现自己处于需要回答 OP 问题的情况,而上述答案中的 none 对我有用。
我有一个导入了一些 Roslyn DLL 的程序。后来,在我不确定哪些 DLL 是真正必要的之后,我试图找出哪些 classes 在哪些 DLL 中。
比如我的程序引用了classMSBuildWorkspace
。导航到 class 声明,我可以看到命名空间名称,class 的完全限定名称是 Microsoft.CodeAnalysis.MSBuild.MSBuildWorkspace
.
按照@Spell 的建议打开对象浏览器并搜索Microsoft.CodeAnalysis.MSBuild.MSBuildWorkspace
结果是"Search found no results",我猜这一定是由于Visual Studio 中的一个错误。
幸运的是,仅搜索 MSBuildWorkspace
确实找到了 class,但它仍然没有告诉我哪个 DLL 包含 class。
所以我需要做的是在对象浏览器右下方的小面板中单击显示为 link 的 class 名称。这导致左侧面板切换到 DLL 及其包含的 classes 的视图。现在我可以看到 class MSBuildWorkspace
在 DLL Microsoft.CodeAnalysis.Workspaces
中,右键单击它并选择复制并将结果粘贴到文本编辑器中,提供了 DLL 的完整路径。
正在修改现有的 .NET 项目。给定 Visual Studio 中的 C# class,我如何找出哪个 DLL 拥有它?
问题是我想在新项目中使用这个class中的方法,所以我需要找到正确的 DLL 添加作为新项目的参考。
有一些工具,如 ReSharper,会建议添加 using
语句,甚至添加对项目的引用。看来你没有这样的东西。
为 Microsoft 添加参考 class
在那种情况下(在我有工具之前),我 google for
class <ClassName> site:msdn.microsoft.com
例如
class Process site:msdn.microsoft.com
这让我想到了 Process class。在 MSDN 页面上,它列出了命名空间和程序集:
Namespace: System.Diagnostics
Assembly: System (in System.dll)
在不同的项目中添加您自己的引用class
- 打开class定义(源代码)
- 打开解决方案资源管理器
- 单击 "Sync with active document" 按钮
- 移至项目
- 打开属性(Alt+Enter)
- 查看Application/Assembly姓名
您可以在项目属性中看到程序集。 DLL 的输出名称(这是 Class 库项目生成的名称)在此处指定。
在对象浏览器(菜单视图 -> 对象浏览器)中搜索您的 class 名称。 程序集信息window会包含dll完整路径
这可能相当令人沮丧和恼火 - 我发现自己处于需要回答 OP 问题的情况,而上述答案中的 none 对我有用。
我有一个导入了一些 Roslyn DLL 的程序。后来,在我不确定哪些 DLL 是真正必要的之后,我试图找出哪些 classes 在哪些 DLL 中。
比如我的程序引用了classMSBuildWorkspace
。导航到 class 声明,我可以看到命名空间名称,class 的完全限定名称是 Microsoft.CodeAnalysis.MSBuild.MSBuildWorkspace
.
按照@Spell 的建议打开对象浏览器并搜索Microsoft.CodeAnalysis.MSBuild.MSBuildWorkspace
结果是"Search found no results",我猜这一定是由于Visual Studio 中的一个错误。
幸运的是,仅搜索 MSBuildWorkspace
确实找到了 class,但它仍然没有告诉我哪个 DLL 包含 class。
所以我需要做的是在对象浏览器右下方的小面板中单击显示为 link 的 class 名称。这导致左侧面板切换到 DLL 及其包含的 classes 的视图。现在我可以看到 class MSBuildWorkspace
在 DLL Microsoft.CodeAnalysis.Workspaces
中,右键单击它并选择复制并将结果粘贴到文本编辑器中,提供了 DLL 的完整路径。