.Net Core App - 命令行格式异常

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net Core App - 命令行格式异常相关的知识,希望对你有一定的参考价值。

我正在遵循这个指南: - https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/windows-service?tabs=aspnetcore2x

当我尝试使用--console命令行参数运行.exe文件时收到以下错误消息: -

未处理的异常:System.FormatException:缺少switch'--console'的值。

这是我的Program类的Main方法。

 public static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Information()
                .WriteTo.Console()
                .CreateLogger();

            var isService = !(Debugger.IsAttached || args.Contains("--console"));

            var pathToContentRoot = Directory.GetCurrentDirectory();
            if (isService)
            {
                var pathToExe = Process.GetCurrentProcess().MainModule.FileName;
                pathToContentRoot = Path.GetDirectoryName(pathToExe);
            }

            var host = WebHost.CreateDefaultBuilder(args)
                .UseContentRoot(pathToContentRoot)
                .UseStartup<Startup>()
                .Build();

            if (isService)
            {
                host.RunAsCustomService();
            }
            else
            {
                host.Run();
            }
        }

我已经确保我从文件夹路径运行命令行参数。

答案

ASP.NET Core配置系统不接受没有值的交换机。它希望能够从参数创建键值对,因此请务必不要转发此参数:

var webHostcArgs = args.Where(arg => arg != "--console").ToArray();
var host = WebHost.CreateDefaultBuilder(webHostcArgs)
…

以上是关于.Net Core App - 命令行格式异常的主要内容,如果未能解决你的问题,请参考以下文章

[Asp.Net Core] 命令行参数读取+配置多种读取

ASP.NET Core 开发人员异常页面

一文了解.Net Core 3.1 Web API基础知识

如何在 ASP.NET Core 中为 gRPC 服务添加全局异常处理 ?

ASP.Net Core 2 错误处理:如何在 Http Response 中返回格式化的异常详细信息?

DotNetCore.NPOI和.Net Core 2 MVC Web App