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

Visual studio 2017 Visual Studio 2017:如何在解决方案文件夹中包含NuGet软件包,visual-studio-2017,nuget,.net-standard-2.0,Visual Studio 2017,Nuget,.net Standard 2.0,到目前为止,使用Visual Studio 2015,NuGet packagas被还原到特定于解决方案的“packages”文件夹中,我将其签入源代码管理。我们的TFS生成服务器没有Internet访问权限,因此需要这些本地副本才能成功生成 我现在正在试用Visual Studio 2017,它有一个.NETStandard类库,它不再制作NuGet软件包的本地副本,而是将它们存储在%HOMEDRIVE%%HOMEPATH%.NuGet\packages中。这意味着它们在生成服务器上不再可用

到目前为止,使用Visual Studio 2015,NuGet packagas被还原到特定于解决方案的“packages”文件夹中,我将其签入源代码管理。我们的TFS生成服务器没有Internet访问权限,因此需要这些本地副本才能成功生成

我现在正在试用Visual Studio 2017,它有一个.NETStandard类库,它不再制作NuGet软件包的本地副本,而是将它们存储在%HOMEDRIVE%%HOMEPATH%.NuGet\packages中。这意味着它们在生成服务器上不再可用


如何让NuGet在本地存储包?

您应该能够在.NET标准(SDK样式)项目中定义一个用于定义NuGet包应还原到的位置的

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

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

..\path\to\MyPackages
在使用PackageReference的项目时,他们提到了三种可能的方法

  • 将NUGET_PACKAGES环境变量设置为其他文件夹
  • 创建一个NuGet.Config文件,将globalPackagesFolder设置为其他文件夹
  • 使用RestorePackagesPath MSBuild属性指定其他文件夹

  • 我在解决方案目录中查找了一个NuGet.config文件,以便解决方案中的所有项目都使用相同的文件夹。以前我尝试过这个方法,但没有成功,因为我使用了key=“repositoryPath”,而PackageReference需要key=“globalPackagesFolder”-尽管我认为globalPackagesFolder是解决方案特定文件夹的非直观名称。