我有一个包含几个ASP.NET核心项目的解决方案,在Visual Studio 2015中管理。
我的NuGet包当前存储在C:\Users\My User\.nuget\packages\
中。我需要在我的解决方案和引用包中有一个Packages目录。像这样:
我将软件包从上面的默认路径复制到解决方案目录中,然后删除了项目的所有引用。然后我将Packages目录添加为NuGet Package Source。最后,我点击Manage NuGet Packages并将其添加到特定项目中,确保选择了我的自定义包源。
这似乎有效,但是当我检查引用包的路径时,它仍然是默认的C:\Users\[...]\packages\
路径。
我错过了什么?如何从解决方案目录中引用软件包?
我尝试打开.xproj文件并手动设置路径,就像我以前在.csproj文件中做的那样,但似乎在.xproj文件中不可能。或者我只是不知道该怎么做。
答案 0 :(得分:2)
我将软件包从上面的默认路径复制到解决方案目录中......它仍然是默认的C:\ Users [...] \ packages \ path
你可能会混淆概念" repositoryPath
"和" Packages source
"。
虽然您删除了所有引用,但我将Packages目录添加为NuGet包源,从自定义包源安装引用,您只需更改Packages源。 从自定义程序包源安装程序包后,NuGet将从自定义程序包源下载程序包并将这些程序包设置为默认repositoryPath
,然后将这些程序包从默认repositoryPath
安装到你的项目。所以它仍然在默认路径中。
如果您想更改 .net core 项目的软件包默认位置,您可以设置" NUGET_PACKAGES"环境变量。只需设置" NUGET_PACKAGES" =" c:\ teampackages"。或者,您可以在解决方案旁边放置一个NuGet.Config文件,其中包含以下内容:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="globalPackagesFolder" value=".\packages" />
</config>
</configuration>
有关详细信息,请参阅GitHub上的the same issue。
然而,我想说的是你可能对结果不满意。因为.Net Core项目依赖于如此多的NuGet包。几乎徘徊在1GB左右。我想你不想为每个解决方案设置所有这些包。此外,通过此更改,您需要在VS中为每个解决方案设置其他源。这对.net核心项目来说非常不方便。这就是为什么NuGet团队为.net核心项目设置特殊设置的原因。
答案 1 :(得分:1)
您可以在src目录中创建Nuget.config并设置 repositoryPath
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<config>
<add key="repositoryPath" value="..\packages" />
</config>
</configuration>
答案 2 :(得分:0)
您可以为离线开发创建本地nuget存储库,而不是让包目录使用本地存储库。这是指南: