繁体   English   中英

在 Visual Studio Code 中使用命令行提示运行 C# 程序

[英]Running a C# program with command line prompts in Visual Studio Code

我在 Visual Studio Code 中运行一个用 C# 编写的继承项目。 为了运行此应用程序,它需要接受命令行输入(-t、-h 等)。 我如何从 Visual Studio 内部测试这个?

目前(我一直在学习 dotnet、C#、VS 等)我有一个 hello world 程序,我可以从 vsc 的终端运行。 由于我无法确定的原因,可能是我是如何安装它的,无法识别dotnet run - 我必须向它提供 dotnet.exe 的显式路径: C:\\Program Files\\dotnet\\dotnet.exe run

当程序需要命令行输入时,我该怎么做? 我在C:\\Program Files\\dotnet\\dotnet.exe run -t

谢谢!

如果您正在使用dotnet.exe run来启动应用程序,你需要的添加-- switch语句指示dotnet.exe的参数传递给您的应用程序。 例如

微软文档

dotnet.exe run -- -arg1 -arg2 (etc)注意--dotnet参数之后和程序特定参数之前。

GitHub 问题

使用终端运行

当您使用终端运行代码时,您必须添加“--”以告诉 dotnet 您正在使用参数/s 运行代码

C:>dotnet run -- <your arguments here>

使用调试器运行

  • 如果没有创建,请在项目中找到 .vscode 文件夹。
  • 打开launch.json文件
  • 您将看到一个 json 对象并将您的参数添加到“args”键中。

启动文件

    "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "args": [], // PUT YOUR ARGUMENTS HERE
             ...
        }
    ]
  1. 右键单击您的项目
  2. 单击属性
  3. 单击“属性”窗口中的“调试”
  4. 在“开始选项”下:
  5. 添加“命令行参数:”= run -t
  6. 添加一个“工作目录:”试试bin\\debug目录

我试图在 Nico 的回答中添加评论,但我缺乏足够的声誉点。 我对每个 arg 前面的破折号感到困惑:“-arg1 -arg2 (etc)”。 为了清楚起见,我想指出 .NET Core 2.1 似乎不需要这个。 对于我的控制台应用程序,第一个参数需要一个日期,第二个参数需要一个整数,然后第三个参数需要一个运算符(+ 或 -)。 如果我输入以下内容:

C:\>dotnet run -- -7/13/2018 -30 -+

我发现每个 arg 前面的前导破折号与预期的 arg 一起传递到程序中,我最终尝试日期解析“-7/13/2018”

当我这样输入时,我得到了预期的结果:

C:\>dotnet run -- 7/13/2018 30 +

由于 OP 专门询问如何在 Visual Studio Code 中执行此操作,因此他们可能会使用 VSCode 的运行功能(而不是其他答案假设的 dotnet CLI)来运行他们的应用程序。 在这种情况下,提供命令行参数的正确方法是通过.vscode\\launch.json文件。

args数组属性添加到您的配置中,并使用您想要传递的参数填充它。

"configurations": [
    {
        // ... ,
        "args": ["-arg1", "-arg2"]
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM