加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

.net – 获取文件版本

发布时间:2020-12-17 00:30:43 所属栏目:大数据 来源:网络整理
导读:我可以通过使用App.Major,App.Minor,App.Revision等在vb6中获取exe(自己的版本)的文件版本.但是如何在vb.net中获得相同的内容.我尝试使用以下3种方法. Text1.Text = My.Application.Info.Version.Major "." My.Application.Info.Version.Minor "." My.Applic
我可以通过使用App.Major,App.Minor,App.Revision等在vb6中获取exe(自己的版本)的文件版本.但是如何在vb.net中获得相同的内容.我尝试使用以下3种方法.
Text1.Text = My.Application.Info.Version.Major & "." & My.Application.Info.Version.Minor & "." & My.Application.Info.Version.Build & "." & My.Application.Info.Version.Revision

Text2.Text = Me.GetType.Assembly.GetName.Version.ToString()

Text3.Text = My.Application.Info.Version.ToString()

在所有3个案例中它返回汇编版本(我在一个xp机器中创建exe的bin文件夹中检查它.在Windows 8中,当我看到文件属性时,我没有看到任何选项,如汇编版本)

默认情况下,程序集和文件版本都是相同的.但是当我在项目属性中手动更改它 – > applicationassembly信息 – >文件版本时我才知道我的代码正在返回程序集版本.
那我怎么能得到文件版本?什么是装配和文件vesrion?

所以在.NET程序中,实际上有两个版本,而不仅仅是一个版本(我知道).汇编版本是您正在抓取的,并且更容易在.NET中检索.它本质上是“.NET的版本”,所以当Assemblies有不同的版本时,它就是它使用的版本.

然后有“文件版本”或在一个地方,我看到微软甚至称它为“汇编文件版本”,使混乱更加严重.所以真正需要查看名称是否包含“文件”.程序集的“文件”版本与文件系统相关联,因此当您在Windows资源管理器中查看该版本时,您将获得此版本.

为什么微软把它们分成两个不同的东西,并没有把它们绑在一起,我不明白.也许有人可以进一步启发我.

我刚想出了获取FileVersion的代码.我发现了这个问题,因为我一直在寻找如何检索它(在VB中,而不是C#).我认为C#使大多数事情变得更容易,包括访问大会.所以这是用于检索程序的File版本的VB代码:

Dim fileName$= System.Reflection.Assembly.GetExecutingAssembly().Location
Dim fileName2$= Application.ExecutablePath ' this grabs the filename too,' but #2 ends with ".EXE" while the 1st ends with ".exe" in my Windows 7.

' either fileName or fileName2 works for me.
Dim fvi As FileVersionInfo = FileVersionInfo.GetVersionInfo(fileName)
' now this fvi has all the properties for the FileVersion information.
Dim fvAsString$= fvi.FileVersion ' but other useful properties exist too.

哇,很多代码应该像VB6中那样简单.甚至可能是App.Version.ToString等等.哇.要走的路,微软!至少这一个并不像他们的一些特技那样困难,比如只是播放自己的音乐串.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读