Visual studio NuGet不必要地恢复包

Visual studio NuGet不必要地恢复包,visual-studio,visual-studio-2015,nuget,nuget-package-restore,Visual Studio,Visual Studio 2015,Nuget,Nuget Package Restore,我有以下项目结构: main解决方案\ | +--->共享项目\ | | |+-->SharedProject.csproj |+-->packages.config +--->下粘连\ | | |+-->包\ |+-->SubSolution.csproj |+-->SubSolution.sln |+-->packages.config +--->包裹\ +--->MainSolution.sln MainSolution.sln是主要解决方案,引用了许多项目

我有以下项目结构:

main解决方案\
|
+--->共享项目\
|         |
|+-->SharedProject.csproj
|+-->packages.config
+--->下粘连\
|         |
|+-->包\
|+-->SubSolution.csproj
|+-->SubSolution.sln
|+-->packages.config
+--->包裹\
+--->MainSolution.sln

MainSolution.sln
是主要解决方案,引用了许多项目,包括
SharedProject.csproj

SubSolution.sln
仅参考
SubSolution.csproj
SharedProject.csproj

SharedProject.csproj
的包引用指向
。\packages\
(即
MainSolution\packages\
)。
SubSolution.csproj
的包引用指向
packages\
(即
MainSolution\SubSolution\packages\

NuGet作为扩展安装到Visual Studio中

问题

我在Visual Studio中打开
MainSolution.sln
,然后构建,NuGet恢复
SharedProject.csproj
所需的所有包,这些包正确地放置在
MainSolution\packages\
中。这是意料之中的

我在Visual Studio中打开了
SubSolution.sln
。我检查了
SharedProject.csproj
的包引用,它们都指向预期的位置(
MainSolution\packages\

我现在构建
SubSolution.sln
,NuGet恢复
SharedProject.csproj
SubSolution.csproj
所需的所有包但是,它没有检测到
SharedProject.csproj
所需的包已经存在于磁盘上-它会再次恢复(下载)这些包,并将它们放在当前解决方案的
目录中,即
MainSolution\SubSolution\packages\
。因此,现在的包是不必要的重复

问题

在构建SubSolution.sln时,为什么NuGet(和/或Visual Studio)选择将
SharedProject.csproj
引用的包复制到当前解决方案的
packages
目录中,而不是仅使用已存在于
MainSolution\packages\
目录中的引用包