如何从文件path中获取.exe文件的版本号
我试图得到我的c:驱动器上的exe文件的版本号。 例如,path是:c:\ Program \ demo.exe,如果demo.exe的版本号是1.0,我怎样才能使用这个path来获取版本号。 我正在使用C#中的.Net 3.5 / 4.0代码。
您可以使用FileVersionInfo.ProductVersion从path中获取。
var versionInfo = FileVersionInfo.GetVersionInfo(pathToExe); string version = versionInfo.ProductVersion; // Will typically return "1.0.0" in your case
如前所述使用FileVersionInfo.GetVersionInfo()。 但区分产品版本和文件版本。 通常,文件版本应该用于比较单个文件的版本正确性,例如用于部署或构build目的。
获取两个版本的示例:
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”。 这个path可以被检索和使用,如下所示:
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