You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET Core控制台应用中调用自定义Nuget包的Version属性展示应用版本

.NET Core 自定义命令行解析器版本参数实现方案

实现步骤

  • 首先引入Nuget包对应命名空间
using myspace.commandlineparser.commands;
using System.Reflection;
  • 实现MyInterface1接口,版本属性直接读取当前控制台程序的程序集版本,避免硬编码维护
public class VersionCommand : MyInterface1
{
    // 实现接口版本属性,取当前运行程序的版本
    public Version Version => Assembly.GetExecutingAssembly().GetName().Version;
    // 实现接口其余必填属性,数值可根据业务自定义
    public int Id => 1;
    public string Name => "version";
}

注:你提供的接口示例中int Id get; }存在语法笔误,实际以Nuget包中编译后的正式接口定义为准即可

  • 绑定命令参数到触发逻辑,在Program.cs的主逻辑中添加参数映射代码
// 此处解析器类名以你朋友开发的Nuget包实际暴露的类名为准
var commandParser = new MyCommandLineParser();
// 绑定短参数-v、长参数--version到版本输出逻辑
commandParser.MapOption<VersionCommand>("-v", "--version", commandInstance =>
{
    Console.WriteLine($"当前应用版本:{commandInstance.Version.ToString()}");
    // 输出后直接退出,避免执行后续业务逻辑
    Environment.Exit(0);
});
// 执行命令行参数解析
commandParser.Parse(args);

特殊场景适配

如果你的需求是输出命令行解析器包本身的版本,而非当前开发的控制台程序版本,不需要自己实现MyInterface1接口,直接从解析器实例中获取内置的MyInterface1实现,读取其Version属性输出即可。
如果朋友开发的解析器依赖依赖注入容器,提前将VersionCommand以MyInterface1服务类型注册为单例,解析时直接从容器拉取实例读取版本属性即可。

内容的提问来源于stack exchange,提问作者Rohan Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:15:08