Как запустить программу с аргументами при отладке?

Я хочу отлаживать программу в 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);
}

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

Ответ 1

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

Ответ 2

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

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

            Console.WriteLine(args[0]);
        }

Удачи!

Ответ 3

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

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

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

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

Или, в качестве альтернативы, используйте сборки друзей, добавив

[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);
        }
    }
}

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

Ответ 4

Для кода Visual Studio:

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

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