14
当多个解决方案中包含某些项目时,为所有解决方案设置一个公共的nuget软件包文件夹
我一直在使用NuGet从外部和内部包源中检索包,这非常方便。但是我已经意识到,默认情况下,每个解决方案都存储了这些软件包,当某些解决方案中包含一些带有NuGet引用的项目时,这非常令人沮丧。然后,将引用更改为其他解决方案包文件夹,而该文件夹实际上对于其他开发人员或构建机器不可用。 我已经看到有一些方法可以指出NuGet的2.1发行版中的通用软件包位置(也许是在项目根级别,我们正在使用TFS源代码控制),请参见发行说明。我正在使用NuGet v2.7 但是我尝试添加nuget.config文件,但没有看到任何效果。程序包仍存储在解决方案文件夹中。有什么我想念的吗?似乎要添加到nuget.config文件中的xml节点结构不同,具体取决于谁在回答这个问题:Schwarzie在另一个Stackoverflow线程上建议: <settings> <repositoryPath>..\..\[relative or absolute path]</repositoryPath> </settings> NuGet 2.1的发行说明(请参见上面的链接)建议采用以下格式: <configuration> <config> <add key="repositoryPath" value="..\..\[relative or absolute path]" /> </config> </configuration> 我不知道其中哪一个或最后一个或两者都可以工作。我在解决方案级别都尝试过。nuget.config文件可以放在TFS项目根目录下,还是必须在解决方案目录中?似乎NuGet按一定顺序读取并应用了这些文件中的设置,为什么将它们添加到多个级别是有意义的,因此解决方案级别的nuget.config文件将覆盖TFS项目根级别的一个。可以澄清一下吗? 在这些引用生效之前,我需要删除所有已安装的软件包吗?如果有人可以提供从解决方案特定的nuget用法转移到公用包文件夹的分步说明,在该文件夹中属于多个解决方案的项目可以找到所需的nuget包,我将非常高兴。