我使用的是带有C#代码的.Net 3.5 / 4.0。
我正在尝试在我的C:驱动器上获取exe文件的版本号。
例如路径为:c:\ Program \ demo.exe。如果demo.exe的版本号是1.0。
如何使用此路径获取版本号?
答案 0 :(得分:121)
您可以使用FileVersionInfo.ProductVersion从路径中获取此内容。
var versionInfo = FileVersionInfo.GetVersionInfo(pathToExe);
string version = versionInfo.ProductVersion; // Will typically return "1.0.0" in your case
答案 1 :(得分:18)
在接受的答案中,引用了“pathToExe”。
可以按如下方式检索和使用此路径:
var assembly = Assembly.GetExecutingAssembly();
var fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
var version = fvi.FileVersion; // or fvi.ProductVersion
希望这可以节省一些不必要的额外步骤。
答案 2 :(得分:6)
Program
是您的班级名称:
Console.WriteLine("Version = " + typeof(Program).Assembly.GetName().Version.ToString()) ;
答案 3 :(得分:4)
我不确定这是否是您要找的,但是:
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);
答案 4 :(得分:2)
使用,它起作用:
using System.Reflection;
string v = AssemblyName.GetAssemblyName("Path/filename.exe").Version.ToString();
答案 5 :(得分:1)
这很好用并返回 AssemblyVersion 中提供的版本:
using System.Reflection;
infoFileVersionInfo versInfo = FileVersionInfo.GetVersionInfo("path.exe");
string version = $"v{versInfo.FileMajorPart}.{versInfo.FileMinorPart}.{versInfo.FileBuildPart}";
答案 6 :(得分:0)
//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