C#控制台应用程序不会从命令行读取,因为它应该

时间:2013-07-09 19:36:53

标签: c# visual-studio-2012 command-line command-line-arguments

我花了很多时间尝试从命令行中读取这个简单的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            if(args.Length > 0)
            {
                for (int i = 0; i < args.Length; ++i)
                    System.Console.WriteLine(args[i]);
            }
            else System.Console.WriteLine("NO COMMAND INPUT DETECTED");
            System.Console.ReadLine();
        }
    }
}

输入命令时:

ConsoleApplication3.application“pleasework”

我在命令行中收到以下消息:

未检测到命令输入

表示命令行无法正常工作。有什么想法吗?我对Visual Studio非常不满意(这是2012年)所以我想我需要改变一些特殊的属性或者一些荒谬的东西。

谢谢!

2 个答案:

答案 0 :(得分:1)

您的代码似乎没问题。 您可能没有正确地传递参数

采取以下步骤:

右键单击项目 =&gt; 属性 =&gt; 调试 =&gt; 在命令行参数中插入“Pleasework” =&gt; 逐步保存和调试您的代码。

enter image description here

你会看到:

enter image description here

答案 1 :(得分:1)

使用此:

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(args.Length);

            Console.Read();
        }
    }
}

我能够转到命令提示符并运行:

C:\ProjectPath\ConsoleApplication1\bin\debug\ConsoleApplivation1.exe "Test" "Test2"

结果:

2

编辑 您似乎正在运行ClickOnce控制台应用程序。这使您想要做的事情变得复杂,但这并非不可能。以下是讨论此特定问题的几种资源:

Processing Command Line Arguments in an Offline ClickOnce Application

Harvesting ClickOnce Command Line Arguments

How to pass arguments to an offline ClickOnce application