VS2017调试ASP.NET Core应用时命令行参数无法传递
解决VS2017调试ASP.NET Core时命令行参数不生效的问题
我之前也踩过完全一样的坑!既然直接通过命令行运行exe参数能正常传递,那百分百是Visual Studio的调试配置出了问题,核心问题就藏在launchSettings.json文件里。
具体修复步骤:
找到并打开
launchSettings.json
这个文件在项目的Properties文件夹里,你可以直接在解决方案资源管理器里展开Properties找到它;也可以右键项目→点击Properties→切换到Debug标签页,这里的可视化配置其实就是在编辑这个文件。添加/修改
commandLineArgs字段
找到你当前用的调试配置节点(比如是IIS Express还是项目名称对应的节点),在节点里新增commandLineArgs属性,值设为你的参数--App:InstanceName demo。给你一个完整的配置示例参考:
{ "$schema": "http://json.schemastore.org/launchsettings.json", "profiles": { "YourAspNetCoreProject": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "https://localhost:5001;http://localhost:5000", "commandLineArgs": "--App:InstanceName demo" }, "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "commandLineArgs": "--App:InstanceName demo" } } }⚠️ 重点提醒:一定要对应你实际使用的启动配置——如果调试时选的是IIS Express,就改IIS Express节点;如果是直接启动项目(commandName为
Project),就改项目对应的节点。重启调试会话
保存文件后,最好关闭当前的调试会话,重新启动调试(或者先重新生成项目再启动),VS有时候不会实时加载配置的变更。
验证小技巧
在Program.cs的Main方法开头加一行代码,输出args数组的内容:
Console.WriteLine($"Command line args: {string.Join(", ", args)}");
启动调试后,查看控制台窗口(或者VS的输出面板),就能直观确认参数是否成功传递了。
内容的提问来源于stack exchange,提问作者Valuator
相关产品推荐
相关产品推荐

