我想在Visual Studio 2008中调试一个程序。问题是如果它没有获得参数,它就会退出。这是来自main方法的:
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);
}
我不想在编译的时候注解掉它,然后再重新注解进去。调试的时候怎么用参数启动程序呢?它被设置为启动项目。
6条答案
按热度按时间vq8itlhq1#
转到
Project-><Projectname> Properties
。然后,单击Debug
选项卡。然后:如果您使用的是Visual Studio 2022
单击
Open debug launch profiles UI
继续。在标记为Command line arguments
的文本框中填写参数。如果您使用的是Visual Studio 2022之前的版本
Command Line Arguments
文字方块位于[两柴]索引标签上。请在文字方块中填入参数。vs91vp4v2#
我建议使用directives,如下所示:
祝你好运!
qjp7pelc3#
我的建议是使用单元测试。
在您的应用程序中,在
Program.cs
中执行下列切换:并且对于
static Main(string[] args)
也是如此。或者,也可以使用Friend Assemblies,方法是添加
到您的
AssemblyInfo.cs
。然后创建一个单元测试项目和一个类似于下面的测试:
这样,您就可以自动测试多个参数输入,而不必在每次要检查不同内容时编辑代码或更改菜单设置。
2sbarzqh4#
我来到这个页面是因为我的命令行参数中有敏感信息,我不想将它们存储在代码库中。我使用系统环境变量来保存这些值,这些值可以根据需要在每台构建或开发计算机上设置。环境变量扩展在Shell批处理进程中工作得很好,但在Visual Studio中不行。
但是,Visual Studio不会返回变量值,而是返回变量的名称。
我在S.O.上尝试了几次之后的最终解决方案是在我的参数处理器中编写一个快速查找环境变量的程序。我在传入的变量值中添加了一个%检查,如果找到了,查找环境变量并替换该值。这在Visual Studio和我的构建环境中都有效。
这使我可以在示例批处理文件中使用相同的语法,也可以在Visual Studio调试中使用相同的语法。GIT中不保存帐户信息或URL。
jslywgbw5#
对于.NET核心控制台应用程序,您可以通过两种方式执行此操作-从launchsettings. json或属性菜单。
Launchsettings.json
或者右键单击左侧的项目〉属性〉调试选项卡
请参阅“应用程序参数:“
e0bqpujr6#
对于Visual Studio代码:
launch.json
文件“args”:[“某个参数”,“另一个”],