Первое, что я бы порекомендовал, это ознакомиться с различиями между версией сборки и версией файла. К сожалению, .NET имеет тенденцию рассматривать их как одинаковые, когда дело доходит до файлов AssemblyInfo, поскольку обычно он только устанавливает AssemblyVersion и позволяет FileVersion по умолчанию использовать то же значение.
Поскольку вы сказали, что это общая сборка, я предполагаю, что вы имеете в виду, что она является общей на бинарном уровне (не включая проект в различные решения). Если это так, вы должны быть очень осторожны с изменением версии сборки, так как именно это .NET использует для строгого имени сборки (чтобы вы могли поместить ее в GAC), а также составляет «полное имя сборки». При изменении версии сборки возможны критические изменения в приложениях, которые ее используют, без добавления записей перенаправления сборки в файл app.config.
Что касается имен, я думаю, что это зависит от правил именования вашей компании (если таковые имеются) и цели библиотеки. Например, если эта библиотека предоставляет «базовую» (или системную) функциональность, которая не относится к какому-либо конкретному продукту или сфере деятельности, вы можете назвать ее так:
CompanyName.Framework.Core
если это часть большой библиотеки или просто
CompanyName.Shared
CompanyName.Core
CompanyName.Framework
Что касается того, когда увеличивать номера версий, это все еще довольно субъективно и зависит от того, что вы считаете каждой частью номера сборки для представления. Схема Microsoft по умолчанию - Major.Minor.Build.Revision, но это не значит, что вы не можете придумать свои собственные определения. Самое главное - быть последовательным в своей стратегии и следить за тем, чтобы определения и правила имели смысл для всех ваших продуктов.
Почти в каждой версии схемы, которую я видел, первые две части - Major.Minor. Основной номер версии обычно увеличивается при больших изменениях и / или прерывистых изменениях, в то время как дополнительный номер версии обычно увеличивается, чтобы указать, что что-то изменилось, что не было критическим изменением. Два других числа значительно более субъективны и могут представлять собой «сборку» (которая часто равна значению серийной даты или последовательно обновляемому номеру, который меняется каждый день) и «номер редакции» или номер исправления. Я также видел их в обратном порядке (с указанием Major.Minor.Revision.Build), где build - это последовательно увеличивающееся число из автоматизированной системы сборки.
Имейте в виду, что основная и дополнительная версии сборки используются в качестве номера версии библиотеки типов при экспорте сборки.
Наконец, взгляните на некоторые из этих ресурсов для получения дополнительной информации:
http://msdn.microsoft.com/en-us/library/51ket42z.aspx
http://msdn.microsoft.com/en-us/library/system.reflection.assemblyversionattribute.aspx
http://blogs.msdn.com/suzcook/archive/2003/05/29/57148.aspx