Изменить версию сборки в скомпилированной сборке .NET - PullRequest
51 голосов
/ 29 декабря 2008

Простой вопрос ... есть ли способ изменить версию сборки скомпилированной сборки .NET?

Вообще-то, я бы мог изменить способ изменения версии файла сборки.

Ответы [ 6 ]

41 голосов
/ 08 мая 2009

Вы можете использовать ILMerge :

ILMerge.exe Foo.dll /ver:1.2.3.4 /out:Foo2.dll

Действительная причина сделать это - увеличить версию сборки в сборке, в которой вы обнаружите критические изменения (например, с помощью NDepend). Таким образом, если нет критических изменений, версия сборки остается прежней, и вы можете легко исправлять выпущенные сборки.

Мы всегда увеличиваем версию файла, и это отражает номер сборки.

12 голосов
/ 02 декабря 2015

Старая тема, но вот мои 5 центов ...

  1. Разберите

    ildasm my.exe /output:my.il / метаданные

  2. Редактировать my.il для изменения информации о версии. Есть несколько мест для изучения:

    • майор: минор: ревизия: сборка - обычно одно вхождение
    • major.minor.revision.build - несколько случаев. Строка находится в разделе комментариев после фактической строки. Версия представляет собой шестнадцатеричное значение в байтовом массиве. Пример: * +1022 *

.custom instance void [mscorlib]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = ( 01 00 07 <strong>35</strong> 2E <strong>31</strong> 2E <strong>33</strong> 2E <strong>30</strong> 00 00 ) // ...5.1.3.0..

  1. Редактировать my.res для изменения информации о версии. Двойной щелчок и редактирование с визуальной студией. Довольно простая процедура.

  2. Сборка

    ilasm my.il /res:my.res

8 голосов
/ 29 декабря 2008

Почему вы хотите это сделать? Если это так, что другое приложение может использовать его, вы можете вместо этого изучить перенаправление привязки сборки .

5 голосов
/ 30 декабря 2008

Похоже, ваш процесс тяжелый, потому что вам нужно обновить несколько файлов AssemblyInfo. Рассматривали ли вы совместное использование одного и того же файла AssemblyInfo между проектами? Дерик Уиттакер дает хороший пример того, как это сделать.

После того, как у вас есть один файл, вы можете пройти дополнительное расстояние, если процесс сборки обновит вашу единственную версию AssemblyInfo, используя MSBuild или NAnt .

4 голосов
/ 25 октября 2013

VerPatch , как указано в этом ответе , просто и эффективно.

4 голосов
/ 31 октября 2012

Если у вас есть формальное тестирование и контроль версий, процесс становится довольно простым. Он начинается с понимания того, кто может изменить разные номера версии и когда. Сборки .net имеют 4 числовых сегмента (т. е. 1.0.0.1).

Первый сегмент содержит номер основной версии. Это устанавливается высшим руководством и указывает на серьезные изменения в пользовательском интерфейсе или в платформе приложения. Это всегда должно быть одно и то же число между версией сборки и версией файла.

Второй сегмент содержит младший номер версии, также известный как номер выпуска функции. Это устанавливается Управлением проектами и указывает, что в приложение были добавлены новые функции. Это всегда должно быть одно и то же число между версией сборки и версией файла.

Третий сегмент содержит номер сборки. Это устанавливается группой тестирования и указывает, что приложение готово к развертыванию. Он изменяется до выпуска исправлений ошибок. При выпуске новой сборки тестирование сбрасывает четвертый сегмент до 0. Это может быть то же самое число между версией сборки и версией файла, но обычно остается равным 0 для версии сборки, чтобы упростить исправление существующих внедрений.

Четвертый сегмент содержит номер редакции. Это устанавливается группой разработчиков всякий раз, когда они проверяют новый код в системе контроля версий. Этот номер будет включен в версию файла скомпилированной DLL, но не в версию сборки.

Я обнаружил, что это помогает разработчикам, тестировщикам и разработчикам отслеживать последние версии, не наступая друг на друга. К сожалению, я также работал с компаниями, которые использовали статическую систему управления версиями, чтобы никто не знал, какой была последняя, ​​лучшая сборка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...