如何在debugging时使用参数启动程序?

我想在Visual Studio 2008中debugging一个程序。问题是,如果它没有获取参数,它将退出。 这是从主要方法:

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

我不想评论它,然后在编译时返回。 如何在debugging时用参数启动程序? 它被设置为启动项目。

转到Project-><Projectname> Properties 。 然后单击Debug选项卡,并在称为Command line arguments的文本框中填写您的Command line arguments

我会build议使用如下的指令 :

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

祝你好运!

我的build议是使用unit testing。

在您的应用程序中执行Program.cs的以下开关:

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

static Main(string[] args)

或者可以通过添加使用朋友组件

 [assembly: InternalsVisibleTo("TestAssembly")] 

到你的AssemblyInfo.cs

然后创build一个unit testing项目和一个testing,看起来有点像这样:

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

通过这种方式,您可以以自动的方式testing参数的多个input,而无需编辑您的代码,或者每次您想检查一些不同的内容时更改菜单设置。