如何在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,而无需编辑您的代码,或者每次您想检查一些不同的内容时更改菜单设置。