【问题标题】:VS2010 Find all references to the project in solutionVS2010 在解决方案中查找对项目的所有引用
【发布时间】:2012-07-18 10:59:02
【问题描述】:

有没有一种简单的方法可以在 VS2010 的解决方案中找到对项目的所有引用? 事实上,我有一个包含 43 个项目的解决方案,我想确保没有项目引用 Project#N。

谢谢

【问题讨论】:

    标签: visual-studio-2010


    【解决方案1】:

    简单但乏味的方法:右键单击解决方案,选择Project Dependencies,在Projects下拉列表中选择第一个项目,然后使用向下箭头滚动浏览项目。对于 Project 框中的每个项目,查看您感兴趣的项目是否已在列表中选中 - 这很可能会成为您的列表。

    或者您可以为此使用 Resharper:

    • 右键单击模块并选择Find Code Dependent on Module 以查找真正使用此模块的所有项目(这将不显示存在但未使用的引用)。
    • 右键单击模块并选择Project Hierarchy,然后单击“引用项目”以查看所有项目引用

    【讨论】:

    • Resharper 的“查找依赖于模块的代码”效果很好!谢谢!
    • 至少答案的第一部分是错误的。它列出了项目的依赖项,而不是依赖项。
    【解决方案2】:

    如果你懒惰并且没有 Resharper,你也可以卸载项目,再次尝试构建解决方案,看看哪些项目构建失败。

    【讨论】:

    • 卸载项目不会破坏使用新的 .NET Core csproj 文件的构建。
    • 请注意,虽然选择 Remove 项目会显示引用错误,但它也会删除引用它的所有其他项目中对现在已删除项目的引用.我犯了这个错误,如果不是因为 Git undo,我不得不在十几个项目中手动添加回引用
    【解决方案3】:

    内置的 Project Dependencies 命令只能以另一种方式工作,即,它会查找给定项目的依赖项,而不是依赖于给定项目的项目 - 当然,除非您想在下拉列表中依次选择 200 个项目中的每一个,然后对于每个项目,向下滚动下面的大量列表以查看是否包含感兴趣的项目。

    相反,在没有 Resharper 的情况下,您可以使用 Find in Files (CTRL SHIFT F) 列出解决方案中引用感兴趣项目的项目:

    【讨论】:

    • 这种方法很有希望,但我发现它只适用于我的 NetStandard 和 .NET Core 项目;它没有从我的经典 .NET Framework 项目中找到任何引用。
    【解决方案4】:

    其中一些非 Resharper 答案很好,但仅适用于某些项目类型,而不适用于其他类型。

    我没有 Resharper,并且我有混合项目类型(NetStandard、.NET Core、.NET Framework、UWP),这是一种对我有用的简单方法:

    首先,卸载感兴趣的项目(在我的示例中,TWW.Common.DataModel)。

    转到您的错误列表,选择Entire Solution,启用警告显示,然后在搜索字段中输入“引用的组件”*。它将过滤列表以显示现在缺少此参考的所有项目:

    * 或 Visual Studio 用于此类警告的任何文本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-03
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多