Информация о версии AssemblyInfo звездочка
В AssemblyInfo.cs для проектов С# указано, что можно указать информацию о версии с помощью *
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Я изменил его на это:
[assembly: AssemblyVersion("1.0.*.*")]
[assembly: AssemblyFileVersion("1.0.*.*")]
и это ошибка, которую я получаю от компилятора:
error CS0647: Error emitting 'System.Reflection.AssemblyVersionAttribute' attribute -- 'The version specified '1.0.*.*' is invalid'
warning CS1607: Assembly generation -- The version '1.0.*.*' specified for the 'file version' is not in the normal 'major.minor.build.revision' format
Как это работает? Это работает?
Ответы
Ответ 1
Синтаксис (см. MSDN) для "автоматического" номера сборки может быть:
[assembly: AssemblyVersion("1.0.0.*")]
или
[assembly: AssemblyVersion("1.0.*")]
* означает, что после этого все автоматически. У вас не может быть автоматического номера сборки и исправленного номера версии, тогда этот синтаксис неверен:
[assembly: AssemblyVersion("1.0.*.0")]
Для AssemblyFileVersionAttribute
вы не можете использовать специальный символ *, поэтому вам необходимо предоставить полный и действительный номер версии. Обратите внимание: если вы не предоставляете AssemblyFileVersionAttribute
, вы автоматически получите FileVersionInfo
(с той же версией AssemblyVersionAttribute
). Вы должны указать этот атрибут, только если вам нужно установить другую версию.
Ответ 2
[assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyFileVersion("1.0.*")]
просто не забудьте прокомментировать строку AssemblyFileVersion, иначе автоматически созданная версия сборки всегда будет "1.0.0.0".
Ответ 3
По-моему, использование [assembly: AssemblyVersion("x.y.z.*")]
, Patch
не должно быть автоматически пронумеровано. Например:
[сборка: AssemblyVersion ( "1.2.3. *" )]
Использование '*' в AssemblyVersion
является хорошим, но следуйте seemver.org, мы должны использовать *
для части revision
из структуры версии <major version>.<minor version>.<build number>.<revision>
).
Учитывая номер версии MAJOR.MINOR.PATCH, увеличьте значение:
ОСНОВНАЯ версия, когда вы делаете несовместимые изменения API,
Версия MINOR, когда вы добавляете функциональность обратно-совместимым образом и
PATCH, когда вы делаете исправления ошибок с обратной совместимостью.