还原.net-core项目的包目标始终是全局包目录

时间:2017-11-15 15:25:45

标签: nuget .net-core nuget-package-restore

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

<configuration>
  <config>
    <add key="repositoryPath" value="packages" />
  </config>
</configuration>

项目packages.config-Files中列出的软件包将被下载到Nuget.config中指定的路径 - &gt; repositoryPath但.net-core项目文件中指定的软件包(通过PackageReference)全部下载到C:\ Users \ USERNAME \ .nuget \ packages中的全局软件包目录中。

如果我使用Visual Studio 2017或通过nuget.exe手动执行此操作并不重要。 .net-core项目只是忽略了NuGet.config。

我们在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

好。得到它了。将以下标记添加到.csproj文件中可以解决问题:

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

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

答案 1 :(得分:0)

respositoryPath用于packages.config项目

globalPackagesFolder用于PackageReference项目

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