【问题标题】:how does visual studio know which assemblies in a NuGet package to reference?Visual Studio 如何知道要引用 NuGet 包中的哪些程序集?
【发布时间】:2017-08-29 16:01:41
【问题描述】:

NuGet 包与许多程序集一起发布。并非 NuGet 包中的所有程序集都需要在 Visual Studio 的 *.csproj 中引用。 Visual Studio 如何确定要引用哪个程序集?这是 nuget.exe 中的逻辑还是某些 NuGet API 中的逻辑?

【问题讨论】:

  • 你是什么意思“不..需要引用”?你指的是计算传递依赖的新 csproj 格式吗?
  • @MartinUllrich 为了清楚起见,我已经编辑了这个问题。

标签: visual-studio nuget


【解决方案1】:

Visual Studio 如何确定要引用哪个程序集?这是 nuget.exe 中的逻辑还是某些 NuGet API 中的逻辑?

此决定应该是 Visual Studio 中 nuget.exe 和 NuGet API 的组合。 Visual Studio 使用 NuGet.exe 下载包,然后使用NuGet API in Visual Studio 将对应的程序集安装到项目中。

首先,在使用基于约定的工作目录时,NuGet 支持将同一库的多个版本放在一个包中。因此,我们将使用区分大小写的不同框架名称来专门针对具有lib 下的子文件夹的多个框架:

lib\{framework name}[{version}]

然后我们将在 Visual Studio 中使用 NuGet API 将包安装到项目中,它会尝试将程序集的框架名称与项目的目标框架匹配

此外,Visual Studio 的 NuGet 包管理器是 nuget.exe 和 nuget API 组合的一个实例,因此 Visual Studio 知道要引用 NuGet 包中的哪些程序集。

您可以参考 NuGet 文档Supporting multiple .NET framework versions 了解更多详细信息。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 1970-01-01
相关资源
最近更新 更多