获取exe文件的版本号问题

luffy927 2007-07-04 02:27:28
string path = @"D:\Test\folder2\IPMSG.exe";

try
{
System.Diagnostics.FileVersionInfo file1 = System.Diagnostics.FileVersionInfo.GetVersionInfo(path);
FileVersions = file1.FileVersion;
}
catch(Exception e1)
{
FileVersions = "";
}

MessageBox.Show(FileVersions);

IPMSG.exe在属性里查看的版本号为2.0.6.0,
运行程序得到的是2.06
另外有的exe文件版本号就给完整的,有的就给不完整的,还有的把"."替换成了","
怎么回事?
...全文
683 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
luffy927 2007-07-04
  • 打赏
  • 举报
回复
好像不用catch~
luffy927 2007-07-04
  • 打赏
  • 举报
回复
谢了,结了~
MutouMajia 2007-07-04
  • 打赏
  • 举报
回复
string FileVersions = "";
string path = @"E:\GoDVB\Latest\Multicast发送端.exe";

try
{
System.Diagnostics.FileVersionInfo file1 = System.Diagnostics.FileVersionInfo.GetVersionInfo(path);
FileVersions = String.Format("{0}.{1}.{2}.{3}", file1.FileMajorPart, file1.FileMinorPart, file1.FileBuildPart, file1.FilePrivatePart);
}
catch (Exception)
{
FileVersions = "";
}

MessageBox.Show(FileVersions);
MicroSoftor 2007-07-04
  • 打赏
  • 举报
回复
注意是"其他版本信息"框中的"文件版本"值.
MicroSoftor 2007-07-04
  • 打赏
  • 举报
回复
楼主,你的程序没有问题.
之所以出现不一致的情况
是因为你没仔细看清IPMSG.exe的版本号
在其他版本信息框中版本信息才是真正的版本号,也是程序所能获得版本号.因此是2.06


你问为什么会出现2.0.6.0这样的版本.这是为了遵循微软的版本标准,即
版本号显示为“主版本号.次版本号.内部版本号.专用部件号”。


接分
MutouMajia 2007-07-04
  • 打赏
  • 举报
回复
string FileVersions = "";
string path = @"E:\GoDVB\Latest\Multicast发送端.exe";

try
{
System.Diagnostics.FileVersionInfo file1 = System.Diagnostics.FileVersionInfo.GetVersionInfo(path);
FileVersions = file1.FileVersion;
}
catch (Exception)
{
FileVersions = "";
}

MessageBox.Show(FileVersions);

// 结果是1.0.6.0,而不是1.06呀? 刚刚试过了。
luffy927 2007-07-04
  • 打赏
  • 举报
回复
我加10分,看看我注册日期就知道我分不多……帮忙啊
huangjinyin 2007-07-04
  • 打赏
  • 举报
回复
http://www.cnblogs.com/zbqy/archive/2007/02/03/638835.aspx
看一下这个
huangjinyin 2007-07-04
  • 打赏
  • 举报
回复
好像就是这么写的,帮顶
luffy927 2007-07-04
  • 打赏
  • 举报
回复
上面还有句string FileVersions;

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧