首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取正在执行的程序集版本?

如何获取正在执行的程序集版本?
EN

Stack Overflow用户
提问于 2011-02-09 12:23:03
回答 4查看 146.1K关注 0票数 190

我正在尝试使用以下代码获取C# 3.0中的执行程序集版本:

var assemblyFullName = Assembly.GetExecutingAssembly().FullName;
var version = assemblyFullName .Split(',')[1].Split('=')[1];

有没有其他合适的方法呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-09 12:28:29

有两个选择。无论应用程序类型如何,您都可以调用:

Assembly.GetExecutingAssembly().GetName().Version

如果是Windows Forms应用程序,如果您专门查找产品版本,则始终可以通过应用程序进行访问。

Application.ProductVersion

使用GetExecutingAssembly进行程序集引用并不总是一种选择。因此,我个人发现在可能需要引用基础程序集或程序集版本的项目中创建静态助手类是很有用的:

// A sample assembly reference class that would exist in the `Core` project.
public static class CoreAssembly
{
    public static readonly Assembly Reference = typeof(CoreAssembly).Assembly;
    public static readonly Version Version = Reference.GetName().Version;
}

然后,我可以根据需要在我的代码中干净地引用CoreAssembly.Version

票数 321
EN

Stack Overflow用户

发布于 2011-02-09 12:30:49

这应该可以做到:

Assembly assem = Assembly.GetExecutingAssembly();
AssemblyName aName = assem.GetName();
return aName.Version.ToString();
票数 6
EN

Stack Overflow用户

发布于 2019-06-07 04:13:31

如果您通过GitVersion或其他版本控制软件使用版本控制,则Product Version可能是首选。

要从您的类库中获取它,您可以调用System.Diagnostics.FileVersionInfo.ProductVersion

using System.Diagnostics;
using System.Reflection;

//...

var assemblyLocation = Assembly.GetExecutingAssembly().Location;
var productVersion = FileVersionInfo.GetVersionInfo(assemblyLocation).ProductVersion

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4941288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档