Gendarme имеет AvoidAssemblyVersionMismatchRule
со следующим описанием:
Это правило проверяет, что
[AssemblyVersion]
соответствует[AssemblyFileVersion]
, когда они присутствуют внутри сборки. Наличие разного номера версии в обоих атрибутах может сбивать с толку после развертывания приложения.
Например, это правило будет предупреждать о Microsoft System.dll
, который имеет следующие атрибуты:
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.50727.3053")]
Я не согласен с правилом жандарма.. После этого было бы невозможно использовать схему управления версиями, аналогичную той, которая используется Microsoft, то есть
- обновить
AssemblyFileVersion
для каждой сборки, - изменить
AssemblyVersion
только на общедоступном интерфейсе или в других основных изменениях, - убедитесь, что
AssemblyVersion
иAssemblyFileVersion
используют общий префикс,
и я думаю, что эта схема управления версиями является конструктивной причиной, по которой было возможно провести различие между AssemblyVersion
и AssemblyFileVersion
.
Я не могу придумать причину, по которой необходимо, чтобы оба атрибута сборки были равными, является хорошей практикой, но, возможно, вы можете! Меня бы интересовали ваши мнения.
Если на самом деле нет веской причины, я скоро предлагаю разработчикам жандарма изменить правило на
Это правило проверяет, что
[AssemblyVersion]
и[AssemblyFileVersion]
имеют общий, непустой префикс, если оба присутствуют внутри сборки.