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

时间:2018-03-31 11:13:41

标签: visual-studio-2017 nuget .net-standard-2.0

到目前为止,使用Visual Studio 2015,NuGet packagas将恢复为特定于解决方案的"包"文件夹,我签入源代码控制。我们的TFS Build服务器没有Internet访问权限,因此需要这些本地副本才能成功构建。

我现在正在尝试使用.NETStandard类库的Visual Studio 2017,它不再生成NuGet包的本地副本 - 而是它们似乎存储在%HOMEDRIVE %% HOMEPATH%.nuget \ packages中。这意味着它们在Build服务器上不再可用。

如何让NuGet在本地存储包?

1 个答案:

答案 0 :(得分:3)

您应该能够在.NET标准(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属性指定其他文件夹。