首页 > 解决方案 > 如何确定不需要项目的哪些包引用?

问题描述

我有一个项目解决方案,可以构建。这些项目大多是旧样式(XML 格式)*.csproj,而不是较新的 SDK 样式,并且项目引用 NuGet 包。

我相信一些包引用是不需要的或已经过时的,即:

转换为 SDK 风格的项目格式时会出现问题——因为packages.config(由 VS IDE 创建)包含项目的依赖项和子依赖项,但新的 SDK 风格的项目只需要定义其依赖项(而不是其子依赖项) .

如何找到不需要哪些包引用?

请假设:


我不想进行实验——即“依次删除每个包引用,并尝试重新构建项目,以查看在构建时是否需要引用”——太耗时了。

我能想到的唯一算法是:

  1. 使用反射打开引用的包并获取定义的类型或命名空间列表
  2. 查看项目中是否使用了这些——通过在源代码中搜索命名空间字符串

你能建议一个更好的方法——更准确的方法,或者使用现有的工具吗?

标签: .netmsbuildnuget

解决方案


从 Visual Studio 2019 16.10 开始,有一个名为“删除未使用的引用”的功能,可以从项目文件中删除对其他项目和 nuget 包的引用。目前它处于预览状态,您需要启用它:转到Tools> Options> Text Editor> C#>Advanced并选择Show “remove Unused References” command in Solution Explorer (experimental).

之后,您将能够从项目中删除引用 在此处输入图像描述

我敢肯定他们会把它移到功能的其他地方,因为它不仅适用于 C#,而且一般适用于 dotnet


推荐阅读