如何在我的.Net Core项目解决方案中包含NuGet包?

时间:2017-04-28 18:50:38

标签: nuget .net-core nuget-package-restore

对于经典的.Net项目,如果我添加了对NuGet包的引用,它将被下载到一个packages文件夹,我可以将其与我的其余代码一起检查到源代码控制中。这允许任何开发人员下载代码以及NuGet包,而无需设置包源来单独下载包。这不是.Net Core项目的工作方式。似乎没有解决方案的包文件夹,每个开发人员都可以设置自定义包源并在获取代码时下载包。有没有办法配置.Net Core项目像经典的.Net项目那样做并管理一个包文件夹?

1 个答案:

答案 0 :(得分:12)

可以通过NuGet.Config文件控制很多NuGet行为(有关详细信息,请参阅this reference

如果您使用以下内容在解决方案旁边放置NuGet.Config文件,则可以覆盖将要还原到软件包的位置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="globalPackagesFolder" value=".\packages" />
  </config>
</configuration>

如果问题是您需要在每台计算机上在VS中设置其他来源,您还可以通过存储库中的NuGet.Config添加这些来源,这样VS就会在开启时选择要使用的Feed解决方案:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="CompanyFeed" value="https://my.company.com/private/nuget" />
  </packageSources>
</configuration>

如果您没有托管软件包的订阅源并且需要在解决方案中包含软件包,则可以在NuGet.Config中使用包含.nupkg文件的目录:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="local" value=".\NuGetPackages" />
  </packageSources>
</configuration>