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

如何使用System.CommandLine设置命令行应用版本号

为System.CommandLine命令行应用设置版本的两种方法

方法一:通过项目文件配置(推荐)

System.CommandLine的默认--version选项会自动读取程序集的版本信息,无需修改代码,只需在项目的.csproj文件中添加版本配置:

打开你的.csproj文件,在<PropertyGroup>节点中添加或修改以下属性:

<PropertyGroup>
  <!-- 产品版本(--version输出显示的版本号) -->
  <Version>2.1.0</Version>
  <!-- 可选:程序集版本 -->
  <AssemblyVersion>2.1.0.0</AssemblyVersion>
  <!-- 可选:文件版本 -->
  <FileVersion>2.1.0.0</FileVersion>
</PropertyGroup>

配置完成后,运行应用时输入你的应用名 --version,就会显示你设置的版本号,替代默认的1.0.0。

方法二:在代码中手动指定版本

如果需要动态控制版本,可以通过代码直接设置:

方式1:设置RootCommand的Version属性

在创建RootCommand实例后,直接指定版本:

var rootCommand = new RootCommand("Converts HTMLs to PDFs provided the names of the files")
{
    HTMLS_FOLDER_option,
    PDFS_FOLDER_option,
    names_option,
    threads_option
};
// 自定义版本号
rootCommand.Version = new Version("2.1.0");

这种方式会让默认的--version选项自动使用你设置的版本。

方式2:自定义版本输出格式

如果需要完全自定义版本的显示内容,可以手动添加版本选项并处理输出:

// 添加自定义版本选项
var versionOption = new Option<bool>(
    new string[] { "-v", "--version" },
    "显示应用版本信息");

rootCommand.Add(versionOption);

// 更新命令处理器,加入版本选项的处理逻辑
rootCommand.SetHandler(
    (htmlFolder, pdfFolder, names, threads, showVersion) =>
    {
        if (showVersion)
        {
            Console.WriteLine("HTML转PDF工具 v2.1.0");
            return;
        }
        OnHandle(htmlFolder, pdfFolder, names, threads);
    },
    HTMLS_FOLDER_option, PDFS_FOLDER_option, names_option, threads_option, versionOption);

注意:使用这种自定义方式时,建议移除.UseDefaults()调用,避免和默认生成的版本选项冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:05:16