还原 .net 核心项目的包目标始终是全局包目录



我们有一个解决方案,其中一些项目是.net核心项目,一些是"普通"的.net 4.6.1项目。在解决方案级别,我们有一个 NuGet.config-File,用于设置 repositoryPath:

<configuration>
  <config>
    <add key="repositoryPath" value="packages" />
  </config>
</configuration>
项目 packages.config-Files 中列出的包将下载到

Nuget.config -> repositoryPath 中指定的路径中,但 .net 核心项目文件中指定的包(通过 PackageReference(将全部下载到 C:\Users\USERNAME\.nuget\packages 中的全局包目录中。

如果我使用Visual Studio 2017或通过nuget.exe手动执行此操作都没有关系。.net-core项目只是忽略NuGet.config。

我们在这里做错了什么?

好的。明白了。将以下标记添加到.csproj文件可以解决问题:

    <PropertyGroup>
      ...
      <RestorePackagesPath>packages</RestorePackagesPath>
    </PropertyGroup>

来源: https://github.com/NuGet/Home/wiki/%5BSpec%5D-NuGet-settings-in-MSBuild

respositoryPath用于

packages.config 项目

globalPackagesFolder用于包引用项目

由于 packages.config 和 PackageReference 使用不同的文件夹格式,因此这些项目类型不能对包使用相同的文件夹,这就是有两种不同的配置设置的原因。

最新更新