Простой вопрос... есть ли способ изменить версию сборки компилируемой сборки .NET?
На самом деле все будет в порядке, чтобы изменить версию файла сборки.
Простой вопрос... есть ли способ изменить версию сборки компилируемой сборки .NET?
На самом деле все будет в порядке, чтобы изменить версию файла сборки.
Вы можете использовать ILMerge:
ILMerge.exe Foo.dll /ver:1.2.3.4 /out:Foo2.dll
Действительной причиной для этого является увеличение версии сборки в сборке, в которой вы обнаружите нарушение изменений (например, с использованием NDepend). Таким образом, если изменений нет, версия сборки остается прежней, и вы можете легко исправлять выпущенные сборки.
Мы всегда увеличиваем версию файла, и это отражает номер сборки.
Старая тема, но вот мои 5 центов...
Разберите
ildasm my.exe/output:my.il/metadatastrong >
Измените my.il, чтобы изменить информацию о версии. Есть несколько мест для изучения:
.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..
Измените my.res, чтобы изменить информацию о версии. Дважды щелкните и отредактируйте визуальную студию. Довольно простая процедура.
Собрать
ilasm my.il/res:my.res
почему ты хочешь сделать это? Если это так, что другое приложение может использовать его, вы можете вместо этого изучить перенаправление привязки сборки.
Похоже, ваш процесс тяжелый, потому что вам нужно обновить несколько файлов AssemblyInfo. Рассматривали ли вы совместное использование одного и того же файла AssemblyInfo между проектами? Дерик Уиттакер дает хороший пример того, как это сделать.
Если у вас есть один файл, вы можете пройти дополнительное расстояние, обновив процесс сборки вашей единственной версии AssemblyInfo с помощью MSBuild или NAnt.
Если у вас есть формальное тестирование и контроль версий, процесс становится довольно простым. Он начинается с понимания того, кто может изменить разные номера сегментов версии и когда. Сборки .net имеют 4 числовых сегмента (т.е. 1.0.0.1).
Первый сегмент содержит номер основной версии. Это устанавливается высшим руководством и указывает на серьезные изменения в пользовательском интерфейсе или в платформе приложения. Это всегда должно быть одно и то же число между версией сборки и версией файла.
Второй сегмент содержит номер малой версии, также известный как номер выпуска функции. Это устанавливается Управлением проектами и указывает, что в приложение были добавлены новые функции. Это всегда должно быть одно и то же число между версией сборки и версией файла.
Третий сегмент содержит номер сборки. Это устанавливается группой тестирования и указывает, что приложение готово к развертыванию. Он изменяется до выпуска исправлений ошибок. При выпуске новой сборки тестирование сбрасывает четвертый сегмент до 0. Это может быть то же самое число между версией сборки и версией файла, но обычно остается равным 0 для версии сборки, чтобы упростить исправление существующих развертываний.
Четвертый сегмент содержит номер редакции. Это устанавливается группой разработчиков всякий раз, когда они проверяют новый код в системе контроля версий. Этот номер будет включен в версию файла скомпилированной DLL, но не в версию сборки.
Я обнаружил, что это помогает разработчикам, тестировщикам и разработчикам отслеживать последние версии, не наступая друг на друга. К сожалению, я также работал с компаниями, которые использовали статическую систему управления версиями, чтобы никто не знал, какой была последняя, лучшая сборка.
VerPatch, как указано в этом , прост и эффективен.