от
Я бы свойство версии моего приложения, чтобы быть увеличена, для каждой сборки, но я не уверен, о том, как включить эту функцию в Visual студии (2005/2008). Я попытался указать AssemblyVersion как 1.0.* но он не понимает меня, что именно я хочу. Я тоже через файл настроек и в предыдущие попытки, когда версия сборки изменил мои настройки есть сброс к умолчанию, так как приложение искал файл настроек в другой каталог. Я хотел бы быть в состоянии отображать номер версии в виде 1.1.38, поэтому, когда пользователь обнаружит проблему я могу войти версии они используют, а также сказать им, чтобы обновить, если они имеют старый выпуск. Короткое объяснение, как работает управление, также будут оценены. Когда построения и номер редакции вам увеличивается?

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.

8 Ответы

0 голосов
от
Я бы свойство версии моего приложения, чтобы быть увеличена, для каждой сборки, но я не уверен, о том, как включить эту функцию в Visual студии (2005/2008). Я попытался указать AssemblyVersion как 1.0.* но он не понимает меня, что именно я хочу. Я тоже через файл настроек и в предыдущие попытки, когда версия сборки изменил мои настройки есть сброс к умолчанию, так как приложение искал файл настроек в другой каталог. Я хотел бы быть в состоянии отображать номер версии в виде 1.1.38, поэтому, когда пользователь обнаружит проблему я могу войти версии они используют, а также сказать им, чтобы обновить, если они имеют старый выпуск. Короткое объяснение, как работает управление, также будут оценены. Когда построения и номер редакции вам увеличивается?
0 голосов
от
С "встроенным" вещи, вы не можете, как с помощью 1.0.* или 1.0.0.* заменит пересмотра и построения чисел с кодовым дата/отметка времени, которого, как правило, тоже хороший способ. Для получения дополнительной информации см. инструкции по сборке Линкер в теге /В. Как для автоматического увеличения числа, использовать задачу файле AssemblyInfo: Задача Файле AssemblyInfo Это может быть настроен на автоматическое увеличение номера сборки. Есть 2 проблемы: Каждый из 4 цифр в строку Версия ограничена 65535. Это ограничение Windows и вряд ли починят. Почему номер сборки ограничивается 65535? Используя С с Subversion требует небольшое изменение: Используя MSBuild для создания сборки версия информация во время сборки (в том числе подрывной исправить) Получение номера версии потом довольно легко:
Version v = Assembly.GetExecutingAssembly().GetName().Version;
string About = string.Format(CultureInfo.InvariantCulture, @"YourApp Version {0}.{1}.{2} (r{3})", v.Major, v.Minor, v.Build, v.Revision);
И, уточню: в .net или по крайней мере в C#, сборка на самом деле третий, а не четвертый, как некоторые люди (например, разработчиков Delphi, которые используются для крупных.Незначительные.Отпустить.Сборки) могли бы ожидать. В .чистая, это важно.Незначительные.Построить.Пересмотр.
0 голосов
от
VS.NET по умолчанию сборка версии 1.0.* и использует следующую логику для автоинкрементные: он устанавливает строительной части на количество дней прошедших с 1 января 2000 года, и устанавливает ревизии в количество секунд, прошедших с полуночи, по местному времени, деленному на два. См. В этой статье MSDN. Версия сборки находится в файле AssemblyInfo.глаг или AssemblyInfo.файл CS. Из файла:
' Version information for an assembly consists of the following four values:
'
'      Major Version
'      Minor Version 
'      Build Number
'      Revision
'
' You can specify all the values or you can default the Build and Revision Numbers 
' by using the '*' as shown below:
'
0 голосов
от
Я обнаружил, что она хорошо работает, чтобы просто отображать дату последнего построения, используя следующую везде, где требуется версия продукта:
System.IO.File.GetLastWriteTime(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString("yyyy.MM.dd.HH.mm.ss")
Вместо того, чтобы пытаться получить версию что-то вроде следующего:
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
object[] attributes = assembly.GetCustomAttributes(typeof(System.Reflection.AssemblyFileVersionAttribute), false);
object attribute = null;

if (attributes.Length
0 голосов
от
Какую систему управления версиями вы используете? Почти все они имеют определенную форму $ ИД $ тег, который расширяется, когда файл проверяется. Я обычно использую определенные формы шаманства, чтобы отобразить это как номер версии. Другой альтернативой является использование в качестве номер сборки: 080803-1448
0 голосов
от
[Визуальная Студия 2017, .свойства csproj файл] Для автоматического обновления PackageVersion/версия/AssemblyVersion собственность (или иное имущество), во-первых, создать новый
Microsoft.Build.Utilities.Task
класс, который будет вам ваш номер текущей версии и отправить обратно обновленный номер (рекомендую создать отдельный проект только для этого класса). Я вручную обновить майор.незначительные цифры, но давайте MSBuild для автоматического обновления номер сборки (1.1.1, 1.1.2, 1.1.3 и т. д. :)
using Microsoft.Build.Framework;
using System;
using System.Collections.Generic;
using System.Text;

public class RefreshVersion : Microsoft.Build.Utilities.Task
{
    [Output]
    public string NewVersionString { get; set; }
    public string CurrentVersionString { get; set; } 

    public override bool Execute()
    {       
        Version currentVersion = new Version(CurrentVersionString ?? "1.0.0");

        DateTime d = DateTime.Now;
        NewVersionString = new Version(currentVersion.Major, 
            currentVersion.Minor, currentVersion.Build 1).ToString();
        return true;
    }

}
Затем позвоните в свой недавно созданный задач на процесс MSBuild добавив следующий код на ваш .файл csproj:
0 голосов
от
Некоторое время назад я написал быстрый и грязный exe, которая обновит версию #ы в файле AssemblyInfo.{ЗС/ВБ} - я тоже воспользовались rxfind.exe (простая и мощная регулярных выражений поиска замены инструмента), чтобы сделать обновление из командной строки, как часть процесса построения. Пара других helpfule подсказки: отдельном файле AssemblyInfo на части продукт (название, версия, и т. д.) и сборки отдельных частей (сборочных имя и т. д.). Смотрите здесь Также - я использую Subversion, так что я нашел это полезно, чтобы установить номер сборки в Subversion номер версии, тем самым делая его очень легко, чтобы всегда вернуться к части кода, который генерируется сборка (например 1.4.100.1502 был построен из редакции 1502).
0 голосов
от
Если вы хотите автоматически увеличивающегося количества обновлений каждый раз при компиляции, вы можете использовать VersionUpdater из предварительно создать событие. Перед построением событий могут проверять конфигурацию построения, если вы предпочитаете так, что номер версии будет только приращение для построения выпуска (например).
...