Первое, что я бы порекомендовал, - это ознакомиться с различиями между версией сборки и версией файла. К сожалению, .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
person
Scott Dorman
schedule
14.10.2008