【问题标题】:Given a class in Visual Studio, how to find out which dll contains it?给定 Visual Studio 中的一个类,如何找出哪个 dll 包含它?
【发布时间】:2015-09-03 14:58:31
【问题描述】:

正在修改现有的 .NET 项目。给定 Visual Studio 中的一个 C# 类,我如何找出哪个 DLL 拥有它?

问题是我想在一个新项目中使用这个类中的一个方法,所以我需要找到正确的 DLL 来添加作为新项目的引用。

【问题讨论】:

    标签: c# .net visual-studio dll .net-assembly


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        为 Microsoft 类添加引用

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

        class <ClassName> site:msdn.microsoft.com
        

        例如

        class Process site:msdn.microsoft.com
        

        这把我带到了Process class。在 MSDN 页面上,它列出了命名空间和程序集:

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

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

        • 打开类定义(源代码)
        • 打开解决方案资源管理器
        • 点击“与活动文档同步”按钮
        • 上移至项目
        • 打开属性(Alt+Enter
        • 查看应用程序/程序集名称

        【讨论】:

          【解决方案4】:

          这可能相当令人沮丧和恼火 - 我发现自己需要回答 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 中,右键单击它并选择复制并将结果粘贴到文本编辑器中提供了 DLL 的完整路径。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-04-05
            • 2018-04-22
            • 1970-01-01
            • 1970-01-01
            • 2010-10-31
            • 2011-08-26
            相关资源
            最近更新 更多