AssemblyInfo.cs, версии приложений .net - PullRequest
2 голосов
/ 04 января 2011

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

Ответы [ 3 ]

7 голосов
/ 04 января 2011

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

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

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

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

3 голосов
/ 04 января 2011

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

.

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

1 голос
/ 04 января 2011

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

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

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

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

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

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

...