Как добраться.номер версии exe-файла из пути к файлу



Я использую .Net 3.5 / 4.0 с кодом в C#.



Я пытаюсь получить номер версии exe-файла на моем диске C:.



например путь: c:Programdemo.исполняемый. Если номер версии демо.exe-это 1.0.



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

643   7  

7 ответов:

можно использовать FileVersionInfo.Версия продукта чтобы извлечь это из пути.

var versionInfo = FileVersionInfo.GetVersionInfo(pathToExe);
string version = versionInfo.ProductVersion; // Will typically return "1.0.0" in your case

Использовать FileVersionInfo.GetVersionInfo () как уже упоминалось. Но различайте версию продукта и версию файла. Обычно версия файла должна использоваться для сравнения корректности версии для одного файла, например, для целей развертывания или сборки.

пример для получения обеих версий:

var versInfo= FileVersionInfo.GetVersionInfo(pathToVersionedFile);
String fileVersion = versInfo.FileVersion; 
String productVersion = versInfo.ProductVersion; 

//example for own display version string, built of the four version parts:
String myVers= String.Format("V{0}.{1}.{2} build {3}", versInfo.FileMajorPart, versInfo.FileMinorPart, 
                                                         versInfo.FileBuildPart, versInfo.FilePrivatePart);

в принятом ответе делается ссылка на "pathToExe".

этот путь может быть извлечен и использован следующим образом:

var assembly = Assembly.GetExecutingAssembly();
var fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
var version = fvi.FileVersion; // or fvi.ProductVersion

надеюсь, что это спасает кого-то от некоторых ненужных дополнительных шагов.

здесь Program ваше название класса:

Console.WriteLine("Version = " + typeof(Program).Assembly.GetName().Version.ToString()) ;

Я не уверен, если это то, что вы ищете, но:

http://www.daniweb.com/software-development/csharp/threads/276174/c-code-to-get-dll-version

Он говорит:

int i;

// Get the file version for the notepad.
FileVersionInfo.GetVersionInfo(Path.Combine(Environment.SystemDirectory, "notepad.exe"));

FileVersionInfo myFileVersionInfo =  FileVersionInfo.GetVersionInfo(Environment.SystemDirectory + "\notepad.exe");

// Print the file name and version number.
Console.WriteLine("File: " + myFileVersionInfo.FileDescription + '\n' + "Version number: " + myFileVersionInfo.FileVersion);

использовать, это работает:

using System.Reflection;

string v = AssemblyName.GetAssemblyName("Path/filename.exe").Version.ToString();
//Example your file version is 1.0.0.0
//Solution 1
Dim fileVer As FileVersionInfo = FileVersionInfo.GetVersionInfo(Environment.CurrentDirectory + "\yourExe.exe")
yourLabel.Text = fileVer.FileVersion
//Solution 2
//Get File Version Number
yourLabel.Text = Application.ProductVersion
//Both solution will get output 1.0.0.0

Comments

    Ничего не найдено.