2017-01-10 8 views
2

Я создал консольное приложение, которое принимает образец текстового файла и обрабатывает его. Это отлично работает, когда я отлаживаю его через Visual Studio, но когда я пытаюсь запустить его из командной строки, аргумент не передается.Невозможно передать аргумент консольному приложению, есть ли недостатки в моем мышлении?

Я понимаю, что я должен быть в состоянии запустить приложение, вызывая его и передавая аргумент, как:

применения аргумента

Что в моем случае было бы что-то вроде этого: C: \ Users \ Alex \ Desktop \ ConsoleApplication2.application C: \ Users \ Alex \ Documents \ Sample.txt

Есть ли что-то очевидное, что мне не хватает?

Однако делать это генерирует следующее исключение: «Неизвестное исключение: System.IndexOutOfRangeException: Индекс находился вне границ массива на ConsoleApplication2.TestProgram.Main (String [] арг).»

аргумент должен быть доступ через код C# следующим

public static void Main(string[] args) 
     { 
      System.Console.WriteLine(args[0]); 
      // Read the file as one string. 
      string text = System.IO.File.ReadAllText(@args[0]); 
... 
... 
rest of method here 
... 
... 

}

+1

Почему ваше приложение * приложение *? –

+0

Вы ничего не пропустили (помимо потенциальной проблемы с разрешениями), что произойдет, когда вы запустите это? – BradleyDotNET

+0

я получаю следующее сообщение «Необработанное исключение: System.IndexOutOfRangeException:. Индекс находился вне границ массива в ConsoleApplication2.TestProgram.Main (String [] арг)» Я в предположении, что это потому что в приложение фактически не передается никаких аргументов. Следует отметить, что это мой первый опыт работы с C# или Visual Studio, поэтому я чувствую себя как во всем. –

ответ

0

Спасибо всем за помощь решить это. Проблема возникла из файла, который я пытался запустить. Я опубликовал приложение через визуальную студию, когда мне захотелось запустить exe из командной строки.

Отличный первый опыт здесь;)

0

следующий код должен распечатать первый аргумент в консоль, если запустить его из командной строки:

class Program 
{ 
    static void Main(string[] args) 
    { 
     if(args.Length > 0) 
      Console.WriteLine(args[0]); 
    } 
} 
  • Построение приложения в Visual Studio.

  • правой кнопкой мыши на проекте в обозревателе решений и выберите «Открыть папку в File Explorer»

  • Обзор к бен/Debug или bin/папки Release или любой конфигурации сборки вы используете
  • Paste путь к .exe в командной строке и запустить его:

enter image description here