В решениях с несколькими проектами одна вещь, которую я нашел очень полезной, состоит в том, чтобы все файлы AssemblyInfo указывали на один проект, который управляет версионированием. Так что в Моем AssemblyInfos есть строка:
[assembly: AssemblyVersion(Foo.StaticVersion.Bar)]
У меня есть проект с одним файлом, который объявляет строку:
namespace Foo
{
public static class StaticVersion
{
public const string Bar= "3.0.216.0"; // 08/01/2008 17:28:35
}
}
Мой автоматизированный процесс сборки затем просто изменяет эту строку, извлекая самую последнюю версию из базы данных и увеличивая вторую последнюю цифру.
Я меняю номер основной сборки только тогда, когда набор функций резко меняется.
Я вообще не изменяю версию файла.