Как добраться.номер версии exe-файла из пути к файлу
Я использую .Net 3.5 / 4.0 с кодом в C#.
Я пытаюсь получить номер версии exe-файла на моем диске C:.
например путь: c:Programdemo.исполняемый. Если номер версии демо.exe-это 1.0.
Как я могу использовать этот путь, чтобы захватить номер версии?.
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