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

Изменить версию сборки в сборке .NET-сборки

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

На самом деле все будет в порядке, чтобы изменить версию файла сборки.

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

  • Разберите

    ildasm my.exe/output:my.il/metadata​​strong >

  • Измените my.il, чтобы изменить информацию о версии. Есть несколько мест для изучения:

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

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

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

  2. Собрать

    ilasm my.il/res:my.res

Ответ 4

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

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

Ответ 5

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

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

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

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

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

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

Ответ 6

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