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.
Gehe zu Project-><Projectname> Properties
. Klicken Sie dann auf die Registerkarte Debug
und geben Sie Ihre Argumente in das Textfeld Command line arguments
ein.
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!
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.
Für Visual Studio Code :
launch.json
-Datei öffnen"args": ["irgendein Argument", "ein anderes"],