it-swarm.com.de

Wie starte ich ein Programm mit Argumenten beim Debuggen?

Ich möchte ein Programm in Visual Studio 2008 debuggen. Das Problem ist, dass es beendet wird, wenn es keine Argumente erhält. Dies ist von der Hauptmethode:

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

Ich möchte es nicht auskommentieren und dann beim Kompilieren wieder rein. Wie kann ich das Programm beim Debuggen mit Argumenten starten? Es ist als Startprojekt festgelegt.

81
Kasper Hansen

Gehe zu Project-><Projectname> Properties. Klicken Sie dann auf die Registerkarte Debug und geben Sie Ihre Argumente in das Textfeld Command line arguments ein.

145

Ich würde vorschlagen, die Direktiven wie folgt zu verwenden:

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

            Console.WriteLine(args[0]);
        }

Viel Glück!

48
Homam

Mein Vorschlag wäre, Unit-Tests zu verwenden.

Führen Sie in Ihrer Anwendung die folgenden Schalter in Program.cs aus:

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

und dasselbe für static Main(string[] args).

Oder verwenden Sie alternativ Friend Assemblies , indem Sie hinzufügen 

[Assembly: InternalsVisibleTo("TestAssembly")]

zu Ihrem AssemblyInfo.cs.

Erstellen Sie dann ein Komponententestprojekt und einen Test, der ein bisschen wie folgt aussieht:

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

Auf diese Weise können Sie auf automatisierte Weise mehrere Argumenteingaben testen, ohne dass Sie Ihren Code ändern oder eine Menüeinstellung ändern müssen, wenn Sie etwas anderes prüfen möchten.

4
dav_i

Für Visual Studio Code :

  • launch.json-Datei öffnen
  • Fügen Sie Ihrer Konfiguration Argumente hinzu:

"args": ["irgendein Argument", "ein anderes"],

0
Alamakanambra