.net-core 项目恢复包目的地始终为全局包目录
Package destination of restore of .net-core projects is always global package directory
我们有一个解决方案,其中一些项目是 .net-core 项目,一些是 "normal" .net 4.6.1 项目。
在解决方案级别,我们有一个 NuGet.config-File 设置 repositoryPath:
<configuration>
<config>
<add key="repositoryPath" value="packages" />
</config>
</configuration>
项目中列出的包 packages.config- 文件正在下载到 Nuget.config -> repositoryPath 中指定的路径,但 .net-core 项目文件中指定的包(通过 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
用于 PackageReference 项目
由于 packages.config 和 PackageReference 使用不同的文件夹格式,这些项目类型不能对包使用相同的文件夹,这就是为什么有两个不同的配置设置。
我们有一个解决方案,其中一些项目是 .net-core 项目,一些是 "normal" .net 4.6.1 项目。 在解决方案级别,我们有一个 NuGet.config-File 设置 repositoryPath:
<configuration>
<config>
<add key="repositoryPath" value="packages" />
</config>
</configuration>
项目中列出的包 packages.config- 文件正在下载到 Nuget.config -> repositoryPath 中指定的路径,但 .net-core 项目文件中指定的包(通过 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
用于 PackageReference 项目
由于 packages.config 和 PackageReference 使用不同的文件夹格式,这些项目类型不能对包使用相同的文件夹,这就是为什么有两个不同的配置设置。