Подтвердить что ты не робот

Информация о версии 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

Как это работает? Это работает?

4b9b3361

Ответ 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, когда вы делаете исправления ошибок с обратной совместимостью.