.net 为什么不';开源项目是否对其程序集/名称空间进行版本设置?
如果您使用过两个或更多开源框架,那么我相信您会遇到以下问题.net 为什么不';开源项目是否对其程序集/名称空间进行版本设置?,.net,open-source,.net,Open Source,如果您使用过两个或更多开源框架,那么我相信您会遇到以下问题 Project 1 FrameWork 1 - v2.0 FrameWork 2 - v1.0 FrameWork 1 - v1.0 项目1引用了框架1和框架2,而框架2包含框架1。不幸的是,框架1的v2.0中有一个突破性的变化,而项目1需要v2.0,框架2将只适用于v1.0。由于程序集和名称空间是相同的,因此它们不能愉快地共存(除非您要求它们进入GAC) 但是,如果在构建开源框架时,名称空间和程序集名称中包含了
Project 1
FrameWork 1 - v2.0
FrameWork 2 - v1.0
FrameWork 1 - v1.0
项目1引用了框架1和框架2,而框架2包含框架1。不幸的是,框架1的v2.0中有一个突破性的变化,而项目1需要v2.0,框架2将只适用于v1.0。由于程序集和名称空间是相同的,因此它们不能愉快地共存(除非您要求它们进入GAC)
但是,如果在构建开源框架时,名称空间和程序集名称中包含了版本号,那么这将否定所有这些。任何数量的相同框架都可以在同一个bin文件夹/appDomain中幸福地生活在一起。当然,有一个问题是如何将其整合到开源框架中,因为这是一个手动步骤,但它将为每个使用它的人解决这个问题。不是吗?这是一把双刃剑: 因此,总而言之,强名称程序集使用的不仅仅是简单名称来确定程序集的标识—更改其版本可以被视为完全更改其名称 参考资料