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

Joe*_*Joe 3 nuget visual-studio-2017 .net-standard-2.0

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

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

如何让 NuGet 在本地存储包?

Mat*_*ard 5

您应该能够在 .NET Standard(SDK 样式)项目中定义一个RestorePackagesPath 属性,该属性定义了 NuGet 包应还原到的位置。

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

<PropertyGroup>
  <RestorePackagesPath>..\path\to\MyPackages</RestorePackagesPath>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

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

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