Visual Studio 2017:如何在解决方案文件夹中包含 NuGet 包

Visual Studio 2017: how to include NuGet packages in solution folder

迄今为止,使用 Visual Studio 2015,NuGet packagas 已恢复到特定于解决方案的 "packages" 文件夹中,我将其签入到源代码管理中。我们的 TFS 构建服务器无法访问 Internet,因此需要这些本地副本才能成功构建。

我现在正在试用 Visual Studio 2017,使用 .NETStandard Class 库,它不再制作 NuGet 包的本地副本 - 相反它们似乎存储在 %HOMEDRIVE% %HOMEPATH%.nuget\packages.这意味着它们在构建服务器上不再可用。

如何让 NuGet 在本地存储包?

您应该能够在您的 .NET Standard(SDK 样式)项目中定义一个 RestorePackagesPath property,它定义了 NuGet 包应该恢复到的位置。

您可以使用它告诉 NuGet 不要使用 .nuget\packages 目录,而是使用与您的项目相关的其他目录。

<PropertyGroup>
  <RestorePackagesPath>..\path\to\MyPackages</RestorePackagesPath>
</PropertyGroup>

查看 NuGet documentation 他们在使用使用 PackageReferences 的项目时提到了三种可能的方法。

  1. 将 NUGET_PACKAGES 环境变量设置为不同的文件夹。
  2. 创建一个 NuGet.Config 文件,将 globalPackagesFolder 设置到不同的文件夹。
  3. 使用 RestorePackagesPath MSBuild 指定不同的文件夹 属性。