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

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

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

推荐答案

有两个 Select .无论应用程序类型如何,您始终可以调用:

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.

.net相关问答推荐

使用React路由加载器获取数据不能正常工作

将 Span 传递到函数时出现 F# 错误

为什么(真的吗?)List 实现所有这些接口,而不仅仅是 IList

C# 中的批量更新

如何中止任务,如中止线程(Thread.Abort 方法)?

有没有办法以编程方式最小化窗口

如何在 C# 中打开 Excel 文件?

如何使用 log4net 记录跟踪消息?

.NET 事件 - 什么是对象发送者和 EventArgs e?

非通用 TaskCompletionSource 或替代

析构函数、dispose 和 finalize 方法的区别

从 OpenFileDialog 路径/文件名中提取路径

如何使用 C# 创建自签名证书?

.NET Framework SDK 和 Targeting 包有什么区别

将日期时间转换为时间跨度

忽略 LINQ to XML 中的命名空间

表单不响应 KeyDown 事件

如何为我的 C# 应用程序创建产品密钥?

在 WPF 中设置 Tab 键顺序

从不同程序集中的类名中解析类型