为什么框架dll在几个地方重复?

Xos*_*uis 6 .net assemblies gac

在安装.Net 4并获得已经在这里回答的一些问题后,我也意识到框架dll如何在不同的框架版本的几个地方重复(这不是新的,它发生在以前的版本,但没有注意到直到现在)

1 - GAC:%systemroot%\ assembly

2- Framework安装目录:%systemroot%\ Microsoft.NET\Framework\v ...

3-如果您安装了Windows SDK,也可以在:C:\ Program Files\Microsoft SDKs\Windows \

我认为最后一个是所谓的"参考装配"并且有额外的元数据来帮助Visual Studio,但是

2号位置怎么样?为什么在那里重复集会?

Jar*_*Par 1

这更多的是有根据的猜测,而不是实际的答案,但是......

为了最初 GAC 一个 DLL,您需要有一个完整的 DLL(也称为非引用程序集)供 GAC 使用。参考程序集将无法工作,因为它没有可执行代码。因此,您需要一个真正的 DLL 来获取 GAC,这样您就可以得到位置 #2。