从同一项目中的多个来源引用 NuGet 包

Referencing NuGet packages from multiple sources in same project

我想将多个 NuGet 包引用到一个 C# 项目中,但这些包来自多个包源。使事情复杂化的是,两个来源中可能存在具有相同标识符(和版本)的 2 个包,但我想从明确的来源引用它。

packages.config 文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="PackageA" version="2.6.9" targetFramework="net452" />
  <package id="PackageB" version="1.0.1" targetFramework="net452" />
</packages>

假设 PackageA 同时存在于源 1 和源 2 中,我希望它明确来自源 2,而 PackageB 来自默认源(源 1)。我从不希望从其他来源检索它们,即使它们不再存在于指定的来源中。我还希望这些信息以某种方式存储为 "Enable NuGet package restore" 命令的一部分,因为我不会将 "packages" 文件夹签入源代码管理。

有没有办法实现这种来自不同来源的包的混合?

这是不支持的。无法为特定的 NuGet 包指定特定的包源。

您应该使用不同的包 ID,或者将所需的包复制到您可以控制使用哪些包的单一包源。