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

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 программы.

ОБНОВЛЕНИЕ → > Извините, это похоже на ответ в другом сообщении... Пожалуйста, проголосуйте, чтобы закрыть его, спасибо.

4b9b3361

Ответ 1

Вы предполагаете, что проблема связана с этой строкой:

[assembly: AssemblyVersion("3.0.*")]

когда он на самом деле с этим:

[assembly: AssemblyFileVersion("3.0.*")]

Как принятый ответ на вопрос, который вы говорите, не является дубликатом этого, говорит:

Для AssemblyFileVersionAttribute вы не можете использовать специальный символ *, поэтому вам необходимо предоставить полный и действительный номер версии.

Синтаксис * работает только с атрибутом AssemblyVersion. Он не работает с атрибутом AssemblyFileVersion.

Есть два способа обхода, которые вы, вероятно, пожелаете здесь:

  • Просто опустите атрибут AssemblyFileVersion. Это приведет к тому, что информация о версии файла сборки будет автоматически отделена от атрибута AssemblyVersion (который поддерживает синтаксис *).

  • Разверните большие пушки и установите надстройку расширения версии версии, которая предлагает вам больше вариантов увеличения версии, чем вы может встряхнуть палку.