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

Eri*_*ric 5 nuget nuget-package-restore .net-core

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

Mar*_*ich 13

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

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

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="globalPackagesFolder" value=".\packages" />
  </config>
</configuration>
Run Code Online (Sandbox Code Playgroud)

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

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="CompanyFeed" value="https://my.company.com/private/nuget" />
  </packageSources>
</configuration>
Run Code Online (Sandbox Code Playgroud)

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

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="local" value=".\NuGetPackages" />
  </packageSources>
</configuration>
Run Code Online (Sandbox Code Playgroud)