有没有办法在没有所有依赖项的情况下安装NuGet包?

时间:2016-12-16 17:47:35

标签: visual-studio nuget

在Visual Studio 2015 C#项目中,有没有办法有选择地安装NuGet包的组件? (除了手动添加引用)

背景

我最近一直在使用Microsoft.CodeAnalysis.CSharp包。这个包包含了我需要的几个库:

  • Microsoft.CodeAnalysis
  • Microsoft.CodeAnalysis.CSharp

它还安装了许多依赖它们的库。对于我正在使用的功能,我只需要这两个:

  • System.Collections.Immutable
  • System.Reflection.Metadata

但是它还安装了我不需要的更多库:

  • System.AppContext
  • System.ComponentModel.Composition
  • System.Console
  • System.Diagnostics.FileVersionInfo
  • System.Diagnostics.StackTrace
  • System.IO.FileSystem
  • System.IO.FileSystem.Primatives
  • System.Numerics
  • System.Security.Cryptography.Algorithms
  • System.Security.Cryptography.Encoding
  • System.Security.Cryptography.Primitives
  • System.Security.Cryptography.X509Certificates
  • System.Text.Encoding.CodePages
  • System.Threading.Thread
  • System.Xml
  • System.Xml.Linq
  • System.Xml.XmlDocument
  • System.Xml.XPath
  • Systen.Xml.XPath.XDocument

我是否可以在安装软件包时检查我想要的库的框?

1 个答案:

答案 0 :(得分:3)

根据the docs,只有 -IgnoreDependencies 命令可以帮助我们忽略所有依赖项。我们不能忽略部分依赖。

但您可以使用 -IgnoreDependencies 实现您的需求,请参阅以下步骤:

  1. 安装Microsoft.CodeAnalysis.CSharp软件包时没有任何依赖:

    安装包Microsoft.CodeAnalysis.CSharp -IgnoreDependencies

  2. 安装依赖包Microsoft.CodeAnalysis。普通包装没有任何依赖:

    安装包Microsoft.CodeAnalysis.Common -IgnoreDependencies

  3. 安装依赖包System.Collections.Immutable和System.Reflection.Metadata包:

    Install-Package System.Collections.Immutable

    Install-Package System.Reflection.Metadata

  4. 如果您不需要使用“System.Collections.Immutable”和“System.Reflection.Metadata”的依赖关系,您也可以使用相同的选项来忽略依赖关系。