We have multiple SharePoint projects and features that reference common library code. The library is versioned using the 4 part identifier (x.x.x.x). Each feature may reference a particular version of the library dll.
Our current issue is that when two features reference the same library dll version that dll is removed from the GAC when one of the features is retracted. It appears that SharePoint is ignorant of the multiple usage of the library dll version and, as a result, is blindly removing the dll from the GAC.
This is NOT an issue when each feature references a different version of the library dll.
Are there any workarounds or best practices associated with this issue? We'd prefer to not have to create a unique version or branch of the library code for each feature.