我有像 -
这样的目录结构Projects
.nuget
NuGet.exe
NuGet.config
NuGet.targets
**packages (I want to download package for different solution HERE ONLY)**
Sources
Applications
App1
App1.sln (Solution File)
**packages (NuGet downloads packages here first then copies to expected folder, WHY??)**
App1 (Porject Directory)
App1.csproj
App2
App2.sln (Solution File)
**packages (NuGet downloads packages here first then copies to expected folder, WHY??)**
App2 (Porject Directory)
App2.csproj
我使用以下代码
在每个解决方案中引用了.nuget文件夹Project("{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}") = ".nuget", ".nuget", "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}"
ProjectSection(SolutionItems) = preProject
..\..\..\.nuget\NuGet.Config = ..\..\..\.nuget\NuGet.Config
..\..\..\.nuget\NuGet.exe = ..\..\..\.nuget\NuGet.exe
..\..\..\.nuget\NuGet.targets = ..\..\..\.nuget\NuGet.targets
EndProjectSection
EndProject
在每个项目文件(.csproj)中,我使用了
引用了常见的NuGet.targets<Import Project="..\..\..\..\.nuget\NuGet.targets" Condition="Exists('..\..\..\..\.nuget\NuGet.targets')" />
在NuGet.config中,我添加了以下行,以便它(必须)仅在EXPECTED文件夹中复制包
<add key="repositoryPath" value="..\packages" />
我已将项目文件夹与TFS映射,并且由于上述问题我要求我在这两个位置添加文件
答案 0 :(得分:0)
NuGet将根据当前解决方案的目录查找NuGet.config file。
因此,如果Projects目录位于c:\ Projects中,则使用App1解决方案,然后您的App1.sln文件将位于c:\ Projects \ Sources \ Applications \ App1目录中。现在,NuGet将在以下位置查找NuGet.config目录:
c:\Projects\Sources\Applications\App1\.nuget\NuGet.Config
c:\Projects\Sources\Applications\App1\NuGet.Config
c:\Projects\Sources\Applications\NuGet.Config
c:\Projects\Sources\NuGet.Config
c:\Projects\NuGet.Config
c:\NuGet.Config
在此之后它会在机器范围内查找,但我现在将忽略它们。
查看目录结构,NuGet不会检查Projects.nuget目录。它不是任何解决方案目录的父级。
我会考虑在Sources目录或Projects目录(不在.nuget目录中)中放置一个带有repositoryPath设置的NuGet.Config文件。或者有两个NuGet.Config文件,一个在App1.nuget目录中,另一个在App2.nuget目录中。