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