.Net Лучше ли проверять обновленный AssemblyInfo.cs в ежедневной сборке? - PullRequest
3 голосов
/ 24 декабря 2009

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

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

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

Спасибо


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

Ответы [ 4 ]

3 голосов
/ 24 декабря 2009

Con:

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

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

[assembly: AssemblyVersion(VersionInfo.VersionMask)]

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

<Assembly: AssemblyVersion(VersionInfo.VersionMask)> 
2 голосов
/ 24 декабря 2009

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

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

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

0 голосов
/ 24 декабря 2009

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

0 голосов
/ 24 декабря 2009

Мой подход всегда был таков: вы должны иметь возможность создавать вещи, просто имея доступ к системе контроля версий. Таким образом, если скрипт, который обновляет assemblyinfo.cs, находится в системе управления версиями, то проблем нет.

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