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 выглядит следующим образом:

Вы можете указать все значения или принять номер сборки по умолчанию, номер редакции или оба, используя звездочку (*). Например, [assembly:AssemblyVersion("2.3.25.1")] указывает 2 в качестве основной версии, 3 в качестве вспомогательной версии, 25 в качестве номера сборки и 1 в качестве номера редакции. Номер версии, такой как [assembly:AssemblyVersion("1.2.*")], Задает 1 в качестве основной версии, 2 в качестве вспомогательной версии и принимает номера сборки и ревизии по умолчанию. Номер версии, такой как [assembly: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 приписывать.

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

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

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

Другие вопросы по тегам