为什么NuGet会安装两个JavaScript包副本?

时间:2014-01-23 05:22:10

标签: javascript nuget visual-studio-2013

当我使用NuGet在Visual Studio中安装JavaScript包,以Project1为目标时,我发现脚本安装在目标Project的Solution1 / Project1 / Scripts文件夹中,而安装到Solution1 / packages中夹。

这个附加副本有什么意义?

2 个答案:

答案 0 :(得分:3)

将packages文件夹视为缓存。如果解决方案中有多个项目,他们会将其本地副本从packages文件夹复制到各自的目录中。这个想法是你只需要下载一次实际的nuget包,如果项目搞砸了,它只是从缓存中刷新它的副本。

packages文件夹还包含的不仅仅是javascript文件。它包含修改配置文件,nuget包定义以及visual studio用于跟踪它们的一些其他花絮的说明。

答案 1 :(得分:1)

对于像jQuery这样的内容包,您的系统上仍然会有.js文件的多个副本,就像复制到bin文件夹中的DLL一样。您不会在每个解决方案中复制文件夹。

对于具有支持大量框架的二进制文件的软件包,您现在拥有每个解决方案的packages文件夹中支持的每个框架的二进制文件,无论解决方案使用哪个框架。使用全局程序包安装,您将拥有1个全局程序包安装,然后每个项目都会将适用于它的程序集复制到其bin中。