如何在 .Net Core 项目的解决方案中包含 NuGet 包?
How do I include NuGet packages in my solution for .Net Core projects?
对于经典的 .Net 项目,如果我添加对 NuGet 包的引用,它会被下载到包文件夹中,我可以将其与我的其余代码一起检入源代码管理。这允许任何开发人员下载代码以及 NuGet 包,而无需设置包源来单独下载包。这不是 .Net Core 项目的工作方式。解决方案似乎没有包文件夹,每个开发人员都需要设置自定义包源并在获得代码时下载包。有没有办法将 .Net Core 项目配置为像经典 .Net 项目那样管理包文件夹?
许多 NuGet 行为可以通过 NuGet.Config
文件控制(有关详细信息,请参阅 this reference)
如果您将 NuGet.Config
文件放在具有以下内容的解决方案旁边,您可以覆盖包将恢复到的位置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="globalPackagesFolder" value=".\packages" />
</config>
</configuration>
如果问题是您需要在每台机器上的 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>
如果您没有托管包的提要并且需要将包包含在解决方案中,您可以在 NuGet.Config:
中使用包含 .nupkg
文件的目录
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="local" value=".\NuGetPackages" />
</packageSources>
</configuration>
对于经典的 .Net 项目,如果我添加对 NuGet 包的引用,它会被下载到包文件夹中,我可以将其与我的其余代码一起检入源代码管理。这允许任何开发人员下载代码以及 NuGet 包,而无需设置包源来单独下载包。这不是 .Net Core 项目的工作方式。解决方案似乎没有包文件夹,每个开发人员都需要设置自定义包源并在获得代码时下载包。有没有办法将 .Net Core 项目配置为像经典 .Net 项目那样管理包文件夹?
许多 NuGet 行为可以通过 NuGet.Config
文件控制(有关详细信息,请参阅 this reference)
如果您将 NuGet.Config
文件放在具有以下内容的解决方案旁边,您可以覆盖包将恢复到的位置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="globalPackagesFolder" value=".\packages" />
</config>
</configuration>
如果问题是您需要在每台机器上的 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>
如果您没有托管包的提要并且需要将包包含在解决方案中,您可以在 NuGet.Config:
中使用包含.nupkg
文件的目录
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="local" value=".\NuGetPackages" />
</packageSources>
</configuration>