.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 中为 gRPC 服务添加全局异常处理 ?