CS1607: версия, указанная для "файловой версии", не находится в обычном формате "major.minor.build.revision" в .NET.
Я пытаюсь установить атрибуты AssemblyVersion
и AssemblyFileVersion
в моем проекте так:
[assembly: AssemblyVersion("3.0.*")]
[assembly: AssemblyFileVersion("3.0.*")]
но я получаю это предупреждение:
CS1607: Генерация сборки. Версия "3.0. *", указанная для "файловой версии", не находится в обычном режиме 'major.minor.build.revision'
На странице AssemblyVersionAttribute Class
в MSDN указано следующее:
Вы можете указать все значения или вы можете принять сборку по умолчанию номер, номер редакции или оба с помощью звездочки (*). Для Например, [сборка: AssemblyVersion ( "2.3.25.1" )] указывает 2 как основная версия, 3 в качестве младшей версии, 25 в качестве номера сборки и 1 как номер ревизии. Номер версии, такой как [сборка: AssemblyVersion ( "1.2. *" )] указывает 1 в качестве основной версии, 2 в качестве второстепенной версии, и принимает стандартную сборку и ревизию номера. Номер версии, такой как [сборка: AssemblyVersion ( "1.2.15. *" )] указывает 1 в качестве основного версии, 2 в качестве младшей версии, 15 в качестве номера сборки и принимает номер версии по умолчанию.
Обратите внимание на жирный раздел. Кто-нибудь знает, почему [assembly: AssemblyVersion("3.0.*")]
(из моего проекта) недействителен, но допустим [assembly:AssemblyVersion("1.2.*")]
(из примера MSDN)?
В частности, мне любопытно узнать, могу ли я начать с ненулевого основного номера, поскольку приложение, которое я пишу, является версией 3 программы.
ОБНОВЛЕНИЕ → > Извините, это похоже на ответ в другом сообщении... Пожалуйста, проголосуйте, чтобы закрыть его, спасибо.
Ответы
Ответ 1
Вы предполагаете, что проблема связана с этой строкой:
[assembly: AssemblyVersion("3.0.*")]
когда он на самом деле с этим:
[assembly: AssemblyFileVersion("3.0.*")]
Как принятый ответ на вопрос, который вы говорите, не является дубликатом этого, говорит:
Для AssemblyFileVersionAttribute
вы не можете использовать специальный символ *, поэтому вам необходимо предоставить полный и действительный номер версии.
Синтаксис *
работает только с атрибутом AssemblyVersion
. Он не работает с атрибутом AssemblyFileVersion
.
Есть два способа обхода, которые вы, вероятно, пожелаете здесь:
-
Просто опустите атрибут AssemblyFileVersion
. Это приведет к тому, что информация о версии файла сборки будет автоматически отделена от атрибута AssemblyVersion
(который поддерживает синтаксис *
).
-
Разверните большие пушки и установите надстройку расширения версии версии, которая предлагает вам больше вариантов увеличения версии, чем вы может встряхнуть палку.