Как запустить программу с аргументами при отладке? - PullRequest
86 голосов
/ 25 января 2011

Я хочу отладить программу в Visual Studio 2008. Проблема в том, что она завершается, если не получает аргументов.Это из основного метода:

if (args == null || args.Length != 2 || args[0].ToUpper().Trim() != "RM") 
{
    Console.WriteLine("RM must be executed by the RSM.");
    Console.WriteLine("Press any key to exit program...");
    Console.Read();
    Environment.Exit(-1);
}

Я не хочу его комментировать, а затем возвращать при компиляции.Как запустить программу с аргументами при отладке?Он устанавливается как проект запуска.

Ответы [ 4 ]

149 голосов
/ 25 января 2011

Перейти к Project-><Projectname> Properties. Затем нажмите на вкладку Debug и введите свои аргументы в текстовое поле с именем Command line arguments.

49 голосов
/ 25 января 2011

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

        static void Main(string[] args)
        {
#if DEBUG
            args = new[] { "A" };
#endif

            Console.WriteLine(args[0]);
        }

Удачи!

5 голосов
/ 19 декабря 2013

Я бы предложил использовать юнит-тесты.

В вашем приложении выполните следующие переключатели в Program.cs:

#if DEBUG
    public class Program
#else
    class Program
#endif

и то же самое для static Main(string[] args).

Или альтернативно используйте Friend Assemblies , добавив

[assembly: InternalsVisibleTo("TestAssembly")]

к вашему AssemblyInfo.cs.

Затем создайте проект модульного теста и тест, который выглядит немногонапример, так:

[TestClass]
public class TestApplication
{
    [TestMethod]
    public void TestMyArgument()
    {
        using (var sw = new StringWriter())
        {
            Console.SetOut(sw); // this makes any Console.Writes etc go to sw

            Program.Main(new[] { "argument" });

            var result = sw.ToString();

            Assert.AreEqual("expected", result);
        }
    }
}

Таким образом, вы можете автоматически тестировать несколько входов аргументов без необходимости редактировать код или изменять настройку меню каждый раз, когда вы хотите проверить что-то другое.

0 голосов
/ 10 февраля 2019

Для Код Visual Studio :

  • Открыть launch.json файл
  • Добавить аргументы в вашу конфигурацию:

"args": ["некоторый аргумент", "другой аргумент"],

...