AssemblyInfo.cs, версии приложений.net

Я хотел бы сохранить версию в моих приложениях.net и позволить.net управлять ею. Я не очень понимаю, как это работает. Номер версии для проекта? Как.net управляет версиями? Если кто-то может объяснить это кратко, я буду благодарен.

3 ответа

Обычно я сохраняю SolutionInfo.cs, который содержит все атрибуты, общие для проектов моего решения, например номер версии. Я держу этот файл в корне решения.

Затем я связываю этот файл с проектом (щелкните правой кнопкой мыши проект и выберите "Добавить" -> "Exsiting"... -> "Добавить как ссылку" (маленькая стрелка на кнопке "Добавить")).

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

Для получения дополнительной информации об этом, например, см.: http://jebsoft.blogspot.com/2006/04/consistent-version-numbers-across-all.html

Номер версии для каждого проекта (файл.csproj), поэтому для встроенного файла.dll или.exe. Номер версии встроен в.dll или.exe, и его можно просмотреть, например, с помощью проводника Windows, щелкнув правой кнопкой мыши файл и выбрав " Свойства".

MSDN содержит пояснительную статью о том, как использовать AssemblyVersion а также AssemblyFileVersion по адресу http://support.microsoft.com/kb/556041

[AssemblyVersion] является очень важным делом в.NET. Каждый тип в вашей программе отпечатан с версией сборки, он является частью идентификации типа. Другими словами, когда изменяется версия вашего типа, вам также следует изменить версию сборки. Это вызывает перекомпиляцию всех других сборок, которые используют ваш тип.

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

Очевидно, что это может работать хорошо, только если вы перекомпилируете весь код в своем решении.

Ну, это не здорово, если тебе не нравится сражаться на мечах. Кроме того, иногда вы хотите сделать простое исправление ошибки в своем коде. Результатом является сборка, которая все еще на 100% совместима с оригинальной версией. И вам не нужно и не хотите перекомпилировать все остальное, что его использует. Вы просто хотите отправить эту сборку вашему клиенту. Понятно, что это может работать хорошо только в том случае, если вы не позволите версии автоматически увеличиваться.

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

Есть только один инструмент, который я знаю, который может сделать это, тот, который у нас есть между нашими ушами.

Другие вопросы по тегам