为什么同一 nupkg 的不同版本不会在解决方案文件夹中还原



在我的解决方案中,我有两个项目,一个引用 nuget 包 v1.0,另一个引用相同的 nuget 包 v2.0。

在MyProject.nuget.props中,我看到这个:

$(UserProfile(.nuget\packages\

我认为当我运行命令"nuget restore"时,它应该将两个版本还原到上述位置:$(UserProfile(.nuget\packages\,实际上它确实如此。然后还还原到我的项目文件夹/包。但是我发现恢复后,我的项目文件夹/包下只有v1.0,因此该项目引用v2.0无法正确构建。

我们可以在同一个解决方案中为两个项目引用同一包的两个不同版本吗?

为什么同一 nupkg 的不同版本没有在解决方案文件夹中恢复?

这取决于您的项目使用的 nuget 管理方法, packages.configpackages.jsonPackageReference

packages.config的默认 nuget 包文件夹位于解决方案文件夹 packages 中。

packages.jsonPackageReference的默认 nuget 包文件夹是全局包$(UserProfile).nugetpackages

因此,您的 win32 项目应使用 packages.config,UWP 项目应使用 PackageReference

注意:检查PackageReference,编辑项目文件.csproj,你会发现以下代码:

  <ItemGroup>
    <PackageReference Include="xxxx" Version="x.x.x" />
  </ItemGroup>

我们可以在同一包中引用同一包的两个不同版本 两个项目的解决方案?

是的,您可以使用相同的 nuget 管理方法创建两个项目。

最新更新