我在Visual Studio 2015中有一个解决方案,其中包含大约40个项目。其中一些项目引用了一些NuGet包。
由于我们的分支策略(每个项目文件夹单独分支)和我们的安全要求(NuGet二进制文件实际被检入TFS)的组合,我希望每个项目的NuGet包安装到每个项目的文件夹,不在解决方案的文件夹中。空间使用不是一个问题。
我看过: https://docs.nuget.org/consume/nuget-config-file https://docs.nuget.org/Release-Notes/NuGet-2.1#Specify-packages-Folder-Location
他们帮助我了解配置文件的工作方式......但我似乎无法做到我想做的事。
我在配置文件中尝试了这个:
<configuration>
<config>
<add key="repositoryPath" value="$(ProjectDir)\Nuget\" />
</config>
</configuration>
但它在解决方案文件夹中创建了一个实际名为'$(ProjectDir)'的文件夹。
我不能硬编码项目文件夹的路径(即NuGet文档中的'C:\ myteam \ teampackages'),因为团队中的每个人都有不同的路径到他们的本地工作区!
我该怎么做?
答案 0 :(得分:0)
Nuget文档提到指定包文件夹位置是让许多不同的解决方案共享同一个包。这与你的情况相反。存储库路径设置只允许您在指定的文件夹(如C:\ teampackages)或相对路径(如../ Nuget)中安装NuGet包。
要在不同的repositoryPath中安装软件包,您可以尝试:
<configuration>
<config>
<add key="repositoryPath" value="../Nuget" />
</config>
</configuration>
检查案例:Is it possible to change the location of packages for NuGet?
答案 1 :(得分:0)
首先,您不应将NuGet包签入TFS版本控制。使用NuGet的一个优点是,您可以使用它来避免检查版本控制系统的二进制文件。
相反,您需要在TFS构建过程中恢复 NuGet包,并且将下载所需的包。在VS2015中,您需要按照此博客中的步骤操作:https://docs.nuget.org/consume/package-restore/team-build)。
一些关键步骤(假设您正在使用XAML构建):