.Net Лучше ли проверять обновленный файл AssemblyInfo.cs в ежедневной сборке?

StackOverflow https://stackoverflow.com/questions/1958804

Вопрос

На моей работе версия сборки каждого проекта в системе контроля версий поддерживается на уровне 1.0.0.0.Когда машина сборки выполняет новую ежедневную сборку, у нее есть задача обновить версию сборки, но она не регистрирует обновленный файл Assemblyinfo.cs.Таким образом, на наших машинах для разработчиков версия сборки DLL, которую мы компилируем, всегда установлена ​​на 1.0.0.0.

Лучше всего поддерживать актуальность версии сборки в системе контроля версий или мы уже поступаем правильно?

Каковы плюсы и минусы каждой возможности?

Спасибо


Связанные или повторяющиеся:
Следует ли помещать файл AssemblyInfo.cs в систему контроля версий?

Это было полезно?

Решение

Против:

  • вы не можете отлаживать или тестировать любой код, который зависит от правильной версии сборки (если такой код у вас есть)

Кстати, есть более простой способ убедиться, что все версии сборки синхронизированы:определить общедоступную константную строку "VersionMask"в публичном классе VersionInfo в сборке верхнего уровня, на которую ссылаются все остальные сборки, и поместите

[assembly: AssemblyVersion(VersionInfo.VersionMask)]

в каждом файле AssemblyInfo.cs (при условии, что вы используете C#), для VB.NET это

<Assembly: AssemblyVersion(VersionInfo.VersionMask)> 

Другие советы

Это неправильно, вы не должны автоматически обновлять [AssemblyVersion].Этот атрибут играет очень важную роль в процессе разрешения сборки, когда CLR ищет правильную версию сборки для загрузки.Хотя это является дискриминационным только тогда, когда сборка хранится в GAC.Предпочтительно его следует изменять только в том случае, если разработчик вносит критические изменения в общедоступный интерфейс сборки, которые сделают его непригодным для использования в приложении, которое иначе не перекомпилируется с обновленной эталонной сборкой.

Вы всегда можете обновить [AssemblyFileVersion].Это также версия, которая отображается в Проводнике на вкладке свойств «Версия».Теперь вас также больше не волнует, что файл будет возвращен.

Для сравнения то же самое было сделано со сборками .NET от .NET 2.0 до .NET 3.5 SP1.Все стандартные сборки остались на версии сборки 2.0.0.0, версия файла менялась тысячи раз.Однако убедиться в том, что эти изменения всегда были совместимы, довольно сложно.

Мой подход всегда заключался в том, что вы должны быть в состоянии создать что-то, просто имея доступ к системе контроля версий.Итак, если сценарий, обновляющий файл Assemblyinfo.cs, находится в системе контроля версий, то проблем нет.

Я думаю, лучше хранить версию в файле Assemblyinfo.cs, чтобы каждый мог проверить и собрать правильную версию.Наличие версии сборки одинаковой в среде Dev.также создавать проблемы при отладке конкретной версии.Также важна версия сборки .NET, поскольку без соответствующей версии dll сборка не будет загружаться, и это также поможет вам в отладке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top