Я бы хотел, чтобы свойство версии моего приложения увеличивалось для каждой сборки, но я не уверен, как включить эту функцию в Visual Studio (2005/2008). Я пытался указать AssemblyVersion как 1.0. *, Но это не дает мне именно того, что я хочу.
Я также использую файл настроек, и в более ранних попытках, когда версия сборки изменялась, мои настройки сбрасывались до значений по умолчанию, поскольку приложение искало файл настроек в другом каталоге.
Я хотел бы иметь возможность отображать номер версии в форме 1.1.38, чтобы, когда пользователь обнаружил проблему, я мог зарегистрировать версию, которую он использует, а также сказать им обновить, если у них есть старая версия.
Также приветствуется краткое объяснение того, как работает управление версиями. Когда увеличивается номер сборки и версии?
источник
Ответы:
С «встроенным» материалом вы не можете, так как использование 1.0. * Или 1.0.0. * Заменит номера ревизии и сборки на закодированную дату / время, что обычно также является хорошим способом.
Дополнительные сведения см. В документации компоновщика сборок в теге / v.
Что касается автоматического увеличения чисел, используйте задачу AssemblyInfo:
AssemblyInfo Задача
Это можно настроить для автоматического увеличения номера сборки.
Есть 2 ошибки:
Тогда получить номер версии довольно просто:
И, чтобы уточнить: в .net или, по крайней мере, в C #, сборка на самом деле является ТРЕТЬИМ номером, а не четвертым, как могли ожидать некоторые люди (например, разработчики Delphi, которые привыкли к Major.Minor.Release.Build).
В .net это Major.Minor.Build.Revision.
источник
VS.NET по умолчанию устанавливает версию сборки 1.0. * И использует следующую логику при автоматическом увеличении: он устанавливает часть сборки на количество дней с 1 января 2000 года и устанавливает часть ревизии на количество секунд с полуночи, местное время, разделенное на два. См. Эту статью MSDN .
Версия сборки находится в файле assemblyinfo.vb или assemblyinfo.cs. Из файла:
источник
January 1st, 2000
Я обнаружил, что достаточно просто отображать дату последней сборки, используя следующее везде, где требуется версия продукта:
Вместо того, чтобы пытаться получить версию из следующего:
источник
Какую систему управления версиями вы используете?
Почти все они имеют ту или иную форму тега $ Id $, который раскрывается при возврате файла.
Я обычно использую какую-либо форму хакерства, чтобы отобразить это как номер версии.
Другой вариант - использовать дату в качестве номера сборки: 080803-1448.
источник
[Visual Studio 2017, свойства .csproj ]
Чтобы автоматически обновить свойство PackageVersion / Version / AssemblyVersion (или любое другое свойство), сначала создайте новый
Microsoft.Build.Utilities.Task
класс, который получит ваш текущий номер сборки и отправит обратно обновленный номер (я рекомендую создать отдельный проект только для этого класса).Я вручную обновляю номера major.minor, но позволяю MSBuild автоматически обновлять номер сборки (1.1. 1 , 1.1. 2 , 1.1. 3 и т. Д. :)
Затем вызовите недавно созданную задачу в процессе MSBuild, добавив следующий код в файл .csproj:
При выборе варианта проекта Visual Studio Pack (просто измените значение на
BeforeTargets="Build"
для выполнения задачи перед сборкой) код RefreshVersion будет запущен для вычисления нового номера версии, иXmlPoke
задача соответственно обновит ваше свойство .csproj (да, он изменит файл).При работе с библиотеками NuGet я также отправляю пакет в репозиторий NuGet, просто добавляя следующую задачу сборки в предыдущий пример.
c:\nuget\nuget
это то место, где у меня есть клиент NuGet (не забудьте сохранить ключ API NuGet, позвонивnuget SetApiKey <my-api-key>
или включив ключ в push-вызов NuGet).На всякий случай кому-то поможет ^ _ ^.
источник
Некоторое время назад я написал быстрый и грязный exe, который обновлял номер версии в файле assemblyinfo. {Cs / vb} - я также использовал rxfind.exe (простой и мощный инструмент замены поиска на основе регулярных выражений) для выполнения обновление из командной строки как часть процесса сборки. Еще пара полезных советов:
источник
Если вы хотите, чтобы число автоматически увеличивалось, которое обновляется каждый раз, когда выполняется компиляция, вы можете использовать VersionUpdater из события перед сборкой. Событие перед сборкой может проверить конфигурацию сборки, если вы предпочитаете, чтобы номер версии увеличивался только для сборки выпуска (например).
источник