C узнать версию программы

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Представляет номер версии сборки, операционной системы или среды CLR. Этот класс не наследуется.

public ref class Version sealed : IComparable, IComparable, IEquatable
public ref class Version sealed : ICloneable, IComparable, IComparable, IEquatable
public ref class Version sealed : ICloneable, IComparable, IComparable, IEquatable, ISpanFormattable
public ref class Version sealed : ICloneable, IComparable
public sealed class Version : IComparable, IComparable, IEquatable

public sealed class Version : ICloneable, IComparable, IComparable, IEquatable
public sealed class Version : ICloneable, IComparable, IComparable, IEquatable, ISpanFormattable
[System.Serializable] public sealed class Version : ICloneable, IComparable
[System.Serializable] [System.Runtime.InteropServices.ComVisible(true)] public sealed class Version : ICloneable, IComparable, IComparable, IEquatable
type Version = class interface IComparable interface IComparable interface IEquatable

КАК СКАЧАТЬ ВСЕ ВЕРСИЙ VISUAL C++ | ПРОБЛЕМЫ С ЗАПУСКОМ ИГРЫ

type Version = class interface ICloneable interface IComparable interface IComparable interface IEquatable
type Version = class interface ICloneable interface IComparable interface IComparable interface IEquatable interface ISpanFormattable interface IFormattable
type Version = class interface IComparable interface IComparable interface IEquatable interface ICloneable
[] type Version = class interface ICloneable interface IComparable
[] [] type Version = class interface ICloneable interface IComparable interface IComparable interface IEquatable

Public NotInheritable Class Version Implements IComparable, IComparable(Of Version), IEquatable(Of Version)
Public NotInheritable Class Version Implements ICloneable, IComparable, IComparable(Of Version), IEquatable(Of Version)
Public NotInheritable Class Version Implements ICloneable, IComparable, IComparable(Of Version), IEquatable(Of Version), ISpanFormattable
Public NotInheritable Class Version Implements ICloneable, IComparable
Наследование
Реализации

Примеры

В следующем примере атрибут используется AssemblyVersionAttribute для присвоения номера версии сборке. Во время компиляции сведения о версии хранятся в метаданных сборки. Во время выполнения в примере извлекается значение Type.Assembly свойства для типа, найденного в сборке, чтобы получить ссылку на выполняемую сборку, и получает сведения о версии сборки из Version свойства AssemblyName объекта, возвращаемого Assembly.GetName методом.

using System; using System.Reflection; [assembly:AssemblyVersionAttribute(«2.0.1»)] public class Example1 < public static void Main() < Assembly thisAssem = typeof(Example1).Assembly; AssemblyName thisAssemName = thisAssem.GetName(); Version ver = thisAssemName.Version; Console.WriteLine(«This is version of .», ver, thisAssemName.Name); > > // The example displays the following output: // This is version 2.0.1.0 of Example1.

Imports System.Reflection Module Example1 Public Sub Main() Dim thisAssem As Assembly = GetType(Example1).Assembly Dim thisAssemName As AssemblyName = thisAssem.GetName() Dim ver As Version = thisAssemName.Version Console.WriteLine(«This is version of .», ver, thisAssemName.Name) End Sub End Module ‘ The example displays the following output: ‘ This is version 2.0.1.0 of Example1.

Комментарии

Номера версий состоят из двух и четырех компонентов: основной, дополнительный, сборка и редакция. Основной и дополнительный компоненты являются обязательными; компоненты сборки и редакции необязательны, но компонент сборки является обязательным, если определен компонент редакции. Все определенные компоненты должны быть целыми числами больше или равными 0. Формат номера версии выглядит следующим образом (дополнительные компоненты показаны в квадратных скобках ([и]):

Как скачать Visual C++ все распространяемые компоненты (VC++ Redistributable)

Эти компоненты используются в соответствии со следующим соглашением:

  • Основные: сборки с одинаковыми именами, но разными основными версиями не взаимозаменяемы. Более высокий номер версии может указывать на значительную перезапись продукта, в которой невозможно предположить обратную совместимость.
  • Дополнительный: Если имя и основной номер версии в двух сборках совпадают, но дополнительный номер версии отличается, это указывает на значительное улучшение с намерением обратной совместимости. Этот больший дополнительный номер версии может указывать на выпуск точки продукта или полностью обратно совместимую версию продукта.
  • Сборка: разница в номере сборки представляет собой повторную компиляцию того же источника. При изменении процессора, платформы или компилятора могут использоваться разные номера сборок.
  • Редакция. сборки с одинаковыми именами, основными и дополнительными номерами версий, но разными редакциями, должны быть полностью взаимозаменяемыми. Более высокий номер редакции может использоваться в сборке, которая устраняет брешь в системе безопасности в ранее выпущенной сборке.

Последующие версии сборки, отличающиеся только номерами сборки или редакции, считаются исправлениями предыдущей версии.

Значение Version свойств, которым не было явно назначено значение, не определено (-1).

начиная с платформа .NET Framework 2,0, MajorRevision свойства и MinorRevision позволяют задать временную версию приложения, которая, например, устраняет проблему, пока не будет выпущено постоянное решение. кроме того, операционная система Windows NT использует MajorRevision свойство для кодирования номера пакета обновления.

Назначение сведений о версии сборкам

Обычно Version класс не используется для присвоения номера версии сборке. Вместо этого AssemblyVersionAttribute класс используется для определения версии сборки, как показано в примере в этом разделе.

Читайте также:
Как накачать программа упражнений

Получение сведений о версии

Version объекты чаще всего используются для хранения сведений о версии некоторых компонентов системы или приложений (таких как операционная система), среды CLR, исполняемого файла текущего приложения или конкретной сборки. В следующих примерах показаны некоторые из наиболее распространенных сценариев.

    Получение версии операционной системы. В следующем примере свойство используется OperatingSystem.Version для получения номера версии операционной системы.

// Get the operating system version. OperatingSystem os = Environment.OSVersion; Version ver = os.Version; Console.WriteLine(«Operating System: ()», os.VersionString, ver.ToString());
‘ Get the operating system version. Dim os As OperatingSystem = Environment.OSVersion Dim ver As Version = os.Version Console.WriteLine(«Operating System: ()», os.VersionString, ver.ToString())
// Get the common language runtime version. Version ver = Environment.Version; Console.WriteLine(«CLR Version «, ver.ToString());
‘ Get the common language runtime version.

Dim ver As Version = Environment.Version Console.WriteLine(«CLR Version «, ver.ToString())
using System; using System.Reflection; public class Example < public static void Main() < // Get the version of the executing assembly (that is, this assembly). Assembly assem = Assembly.GetEntryAssembly(); AssemblyName assemName = assem.GetName(); Version ver = assemName.Version; Console.WriteLine(«Application , Version «, assemName.Name, ver.ToString()); > >
Imports System.Reflection Module Example Public Sub Main() ‘ Get the version of the executing assembly (that is, this assembly).

Dim assem As Assembly = Assembly.GetEntryAssembly() Dim assemName As AssemblyName = assem.GetName() Dim ver As Version = assemName.Version Console.WriteLine(«Application , Version «, assemName.Name, ver.ToString()) End Sub End Module
using System; using System.Reflection; public class Example < public static void Main() < // Get the version of the current assembly. Assembly assem = typeof(Example).Assembly; AssemblyName assemName = assem.GetName(); Version ver = assemName.Version; Console.WriteLine(«, Version «, assemName.Name, ver.ToString()); > >

Imports System.Reflection Module Example Public Sub Main() ‘ Get the version of the current assembly. Dim assem As Assembly = GetType(Example).Assembly Dim assemName As AssemblyName = assem.GetName() Dim ver As Version = assemName.Version Console.WriteLine(«, Version «, assemName.Name, ver.ToString()) VB End Sub End Module
Imports System.Reflection Module Example Public Sub Main() ‘ Get the version of a specific assembly.

Dim filename As String = «.StringLibrary.dll» Dim assem As Assembly = Assembly.ReflectionOnlyLoadFrom(filename) Dim assemName As AssemblyName = assem.GetName() Dim ver As Version = assemName.Version Console.WriteLine(«, Version «, assemName.Name, ver.ToString()) End Sub End Module
using System; using System.Deployment.Application; public class Example < public static void Main() < Version ver = ApplicationDeployment.CurrentDeployment.CurrentVersion; Console.WriteLine(«ClickOnce Publish Version: «, ver); > >
Imports System.Deployment.Application Module Example Public Sub Main() Dim ver As Version = ApplicationDeployment.CurrentDeployment.CurrentVersion Console.WriteLine(«ClickOnce Publish Version: «, ver) End Sub End Module

Важно! версия публикации приложения для ClickOnce развертывания полностью независима от его версии сборки.

Сравнение объектов версии

С помощью метода можно CompareTo определить, является ли один Version объект более ранним, чем второй, или более поздним Version . В следующем примере указывается, что версия 2,1 более поздняя, чем версия 2,0.

Version v1 = new Version(2, 0); Version v2 = new Version(«2.1»); Console.Write(«Version is «, v1); switch(v1.CompareTo(v2)) < case 0: Console.Write(«the same as»); break; case 1: Console.Write(«later than»); break; case -1: Console.Write(«earlier than»); break; >Console.WriteLine(» Version .», v2); // The example displays the following output: // Version 2.0 is earlier than Version 2.1.

Dim v1 As New Version(2,0) Dim v2 As New Version(«2.1») Console.Write(«Version is «, v1) Select Case v1.CompareTo(v2) Case 0 Console.Write(«the same as») Case 1 Console.Write(«later than») Case -1 Console.Write(«earlier than») End Select Console.WriteLine(» Version .», v2) ‘ The example displays the following output: ‘ Version 2.0 is earlier than Version 2.1.

Чтобы две версии были равны, номера основного, дополнительного, сборки и редакции первого Version объекта должны быть идентичны значениям второго Version объекта. Если номер сборки или редакции Version объекта не определен, этот Version объект считается более ранним, чем Version объект, номер сборки или номера редакции которого равен нулю. В следующем примере показано, как сравнить три Version объекта с неопределенными компонентами версии.

using System; enum VersionTime ; public class Example < public static void Main() < Version v1 = new Version(1, 1); Version v1a = new Version(«1.1.0»); ShowRelationship(v1, v1a); Version v1b = new Version(1, 1, 0, 0); ShowRelationship(v1b, v1a); >private static void ShowRelationship(Version v1, Version v2) < Console.WriteLine(«Relationship of to : «, v1, v2, (VersionTime) v1.CompareTo(v2)); > > // The example displays the following output: // Relationship of 1.1 to 1.1.0: Earlier // Relationship of 1.1.0.0 to 1.1.0: Later
Public Enum VersionTime Earlier = -1 Same = 0 Later = 1 End Enum Module Example Public Sub Main() Dim v1 As New Version(1, 1) Dim v1a As New Version(«1.1.0») ShowRelationship(v1, v1a) Dim v1b As New Version(1, 1, 0, 0) ShowRelationship(v1b, v1a) End Sub Private Sub ShowRelationship(v1 As Version, v2 As Version) Console.WriteLine(«Relationship of to : «, v1, v2, CType(v1.CompareTo(v2), VersionTime)) End Sub End Module ‘ The example displays the following output: ‘ Relationship of 1.1 to 1.1.0: Earlier ‘ Relationship of 1.1.0.0 to 1.1.0: Later

Читайте также:
Какие программы являются мессенджерами

Конструкторы

Инициализирует новый экземпляр класса Version.

Инициализирует новый экземпляр класса Version с помощью указанных основного и дополнительного номеров версии.

Инициализирует новый экземпляр класса Version с помощью указанных основного и дополнительного номеров версии и номера построения.

Инициализирует новый экземпляр класса Version с помощью указанных основного и дополнительного номеров версии, номера построения и номера редакции.

Инициализирует новый экземпляр класса Version, используя указанную строку.

Свойства

Возвращает значение компонента текущего объекта Version, представляющего в номере версии номер построения.

Получает значение компонента текущего объекта Version, представляющего в номере версии основной номер.

Возвращает старшие 16 разрядов номера редакции.

Возвращает значение компонента текущего объекта Version, представляющего в номере версии дополнительный номер.

Возвращает младшие 16 разрядов номера редакции.

Возвращает значение компонента текущего объекта Version, представляющего в номере версии номер редакции.

Методы

Возвращает новый объект Version, значение которого совпадает со значением текущего объекта Version.

Сравнивает текущий объект Version с заданным объектом и возвращает сведения об их относительных значениях.

Сравнивает текущий объект Version с заданным объектом Version и возвращает сведения об их относительных значениях.

Возвращает значение, позволяющее определить, равен ли текущий объект Version указанному.

Возвращает значение, позволяющее определить, представляют ли текущий объект Version и заданный объект Version одно и то же значение.

Возвращает хэш-код для текущего объекта Version.

Возвращает объект Type для текущего экземпляра.

Создает неполную копию текущего объекта Object.

Преобразует указанный диапазон символов только для чтения, представляющий номер версии, в эквивалентный объект Version.

Преобразует строковое представление номера версии в эквивалентный объект Version.

Преобразует значение текущего объекта Version в эквивалентное ему представление String.

Преобразует значение текущего объекта Version в эквивалентное ему представление String. Заданное количество обозначает число возвращаемых компонент.

Пытается отформатировать этот экземпляр версии в диапазон символов.

Пытается отформатировать этот экземпляр версии в диапазон символов.

Предпринимает попытку преобразования указанного диапазона символов только для чтения, представляющего номер версии, в эквивалентный объект Version и возвращает значение, позволяющее определить, успешно ли выполнено преобразование.

Предпринимает попытку преобразования строкового представления номера версии в эквивалентный объект Version и возвращает значение, позволяющее определить, успешно ли выполнено преобразование.

Операторы

Определение равенства двух заданных объектов Version.

Определяет, действительно ли значение первого указанного объекта Version больше значения второго указанного объекта Version.

Определяет, является ли значение первого указанного объекта Version большим или равным значению второго указанного объекта Version.

Определение неравенства двух заданных объектов Version.

Определяет, меньше ли значение первого указанного объекта Version, чем значение второго указанного объекта Version.

Определяет, действительно ли значение первого указанного объекта Version меньше или равно значению второго указанного объекта Version.

Явные реализации интерфейса

Сравнивает текущий объект Version с заданным объектом и возвращает сведения об их относительных значениях.

Форматирует значение текущего экземпляра, используя указанный формат.

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

Источник: learn.microsoft.com

Как я могу узнать версию другого приложения, используя C #

Мне нужно написать программу в С# для сбора информации о процессах, запущенных на моем компьютере. Я успешно получаю имена процессов и идентификаторы с помощью этого кода: . Process [] processlist; . foreach (обрабатывать процесс в списке процессов) < Console.WriteLine(theprocess.ProcessName +. ) >. Но я не смог получить версию процессов (например, Firefox или Visual Studio). кто-нибудь знает, как получить версию запущенного процесса? спасибо большое!

menachem 26 окт. 2009, в 22:49
Поделиться
Поделиться:

3 ответа

Лучший ответ
theProcess.MainModule.FileVersionInfo. Но есть одно или два исключения, которые вам нужно поймать.
Daniel Ives 26 окт. 2009, в 20:45
Поделиться

Имейте в виду, что исполняемые файлы FileVersion и/или ProductVersion могут не совпадать с версией приложения. Например, Firefox 3.5.3 сообщает FileVersion 1.9.1.3523, но ProductVersion 3.5.3. VMware Player 2.5.1, с другой стороны, сообщает FileVersion 6.5.1.5078 и ProductVersion 6.5.1 build-126130. В зависимости от того, для чего вы используете эту информацию, это может быть или не быть проблемой.

Marty Dill 26 окт. 2009, в 19:42
Поделиться

Вы можете получить имя исполняемого файла из файла Process.StartInfo.FileName. Получите новый экземпляр FileVersionInfo, используя имя файла:

FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(Process.StartInfo.FileName);

Затем перейдите в myFileVersionInfo.FileVersion, чтобы получить версию файла. РЕДАКТИРОВАТЬ: Даниэль кажется более эффективным; Я не знал, что вы можете просто получить доступ к загруженному модулю FileVersionInfo напрямую.

andyp 26 окт. 2009, в 19:27
Поделиться

Читайте также:
Установить программу неро для записи дисков

Ещё вопросы

  • 1 Объяснение о клоне необходим массив, содержащий клонируемые объекты
  • 0 varchar m: d: YH: i: s для преобразования формата даты и времени в mysql
  • 1 TFS Changeset несколькими пользователями
  • 0 Автоматическая проблема с перенаправлением в iframe
  • 0 Перезагрузить таблицу без обновления всей страницы в php
  • 1 Как получить простой список из Android LiveData >?
  • 0 Medoo — Обновление строки таблицы, соответствующей нескольким полям
  • 1 SQLDataReader с пустым чтением после ExecuteReader
  • 1 Python запускается из командной строки и запускает версию 3.6, а в моих файлах — версию 3.4
  • 0 Установка MAMP на компьютер с установленным MySql и настройкой PHP на localhost?
  • 0 Как добавить нового пользователя в Kamailio, используя PHP shell_exec?
  • 0 Сайт AngularJS — полный или частичный
  • 1 Свободный запрос за пределами просроченного соединения
  • 1 Редактирование элемента списка WPF во время выполнения из c #
  • 0 Функция, которая возвращает массив, но также принимает функцию в качестве параметра
  • 1 Одновременная запись нескольких переменных в Pandas
  • 0 Как правильно использовать ON DUPLICATE KEY UPDATE в Node.js MySQL
  • 0 Какую часть CSS нужно изменить, чтобы это работало, т.е.
  • 1 Динамически загружать XML с помощью стилей CSS
  • 0 Проверка регулярных выражений для смешанных дробей — Visual C ++ 2012
  • 1 Вызов процесса в C # со строковыми аргументами []
  • 1 java.lang.IllegalStateException: Невозможно выполнить это действие на незапечатанном экземпляре
  • 0 MySQL conf файл в доке MySQL
  • 1 отключить сортируемую функцию mootools без редактирования оригинала
  • 0 Сделайте фон поля поиска кликабельным
  • 0 JQuery переходы страницы
  • 0 Утверждение рейтинга звезд jquery
  • 0 Чтение проблем с двоичными данными
  • 0 ng-options объекта, как получить значение ключа для функции (angularJS)
  • 1 Тестирование Junit: тестирование всех возможных границ?
  • 0 Можно ли манипулировать выводом html элемента управления на страницу?
  • 0 Простой калькулятор HTML / JavaScript не работает?
  • 0 передача данных от контроллера mvc к угловому контроллеру и области
  • 0 Angular не обновляет цикл из-за реализации $ mdDialog (Material Design)
  • 0 Как обновить набор указателей с ++?
  • 1 Как переключать фрагменты, используя предыдущую и следующую кнопки?
  • 1 Не удается сохранить нового пользователя с Express https://overcoder.net/q/4029737/%D0%BA%D0%B0%D0%BA-%D1%8F-%D0%BC%D0%BE%D0%B3%D1%83-%D1%83%D0%B7%D0%BD%D0%B0%D1%82%D1%8C-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8E-%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B3%D0%BE-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-c» target=»_blank»]overcoder.net[/mask_link]

    Visual Studio C#: версия сборки приложения (Application Version Number)

    По номеру версии удобно отслеживать изменения, которые произошли в программе и сравнивать между собой релизы.

    Для того чтобы посмотреть и поменять версию сборки программы в процессе ее разработки, можно пойти двумя путями:

    в главном меню выбрать Проект -> Свойства:проекта… -> Приложение -> кнопка «Сведения о сборке…» -> поле «Версия сборки».

    щелкнув правой кнопкой мыши по проекту в окне Обозреватель решений, в контекстном меню выбрать Свойства:проекта… -> Приложение -> кнопка «Сведения о сборке…» -> поле «Версия сборки».

    Будет отображено окно, содержащее общие сведения о текущем проекте.

    Сведения о сборке

    Информация о версии хранится в файлеAssemblyInfo.cs, который размещается в папке Properties текущего проекта и может выглядеть следующим образом:

    [assembly: AssemblyVersion(«1.0.0.0»)] [assembly: AssemblyFileVersion(«1.0.0.0»)]

    Номер версии состоит из четырех цифр: major.minor.build.revision (главная.младшая.сборка.ревизия). По умолчанию версия установлена в значение 1.0.0.0. При этом можно сделать так, чтобы числа build и revision генерировались автоматически, для этого нужно поменять строку с AssemblyVersion на 1.0.*. Или как это сделано у меня:

    [assembly: AssemblyVersion(«0.2.*»)]

    После того, как такое изменение сделано, третья цифра (build), будет равна числу дней начиная с 1 января 2000 года по местному времени. Четвертая цифра ревизии или редакции (revision) будет установлена в количество секунд от полуночи по местному времени. Это очень удобно, поскольку версия будет автоматически увеличиваться каждый раз при перекомпилировании проекта. Если нужно контролировать эти цифры вручную (например, при публикации официального релиза), то необходимо установить нужное значение вручную, например 1.4.7.6.

    Общепринятая для .NET методика установки цифр версии — значения major и minor связаны со значительными изменениями в программе, а значения build и revision — с незначительными. То есть версии, у которых отличаются номера major и minor, считаются несовместимыми друг с другом, а версии, у которых различаются только build и/или revision — совместимыми.

    Еще одна штатная функция, имеющая непосредственное отношение к изменению версии — ClickOnce, которая настраивается на странице публикации в конструкторе проектов:

    Проект -> Свойства:проекта… -> Публикация.

    При каждой публицаии приложения будет происходить инкрементное увеличение четвертой цифры номера версии, за которое отвечает установленная галочка. Скриншот ниже.

    Публикация

    Для получения версии сборки во время выполнения — подключаем модули:

    using System.Deployment.Application; using System.Reflection;

    Создаем следующий метод:

    1 2 3 4 5 6 7 8 9
    public string CurrentVersion { get { return ApplicationDeployment.IsNetworkDeployed ? ApplicationDeployment.CurrentDeployment.

    CurrentVersion.ToString() : Assembly.GetExecutingAssembly().GetName().

    Version.ToString(); } }

    Получаем версию сборки, например привязав событие к кнопке:

    1 2 3 4
    private void button_Click(object sender, EventArgs e) { textBox.AppendText(CurrentVersion); }

    Вы также можете ознакомиться с другими статьями:

    • C#: Программное заполнение ComboBox и работа с перечислениями
    • Visual Studio C#: создание фрагментов кода IntelliSense (snippets)
    • C#: Цветная рамка ToolStripTextBox
    • Dictionary с поддержкой сериализации
    • Visual Studio C#: Partial Class in Windows Form(Разделяемые классы)

    Источник: it-enginer.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru