在Visual Studio中使用命令行参数进行调试


Answers:


752

是的,它位于项目的属性页的“ 调试”部分中。

自2008年以来在Visual Studio中:右键单击项目,选择“ 属性”,然后转到“ 调试”部分-“命令参数”框将出现。(提示:不是解决方案,而是项目)。


295
Stackoverflow是唯一可用的MS文档!
马丁·贝克特

12
小心点。这不会更改实际的项目文件,而是vcxproj.user-file。
TheTrowser,2015年

注意:如果解决方案中有多个项目,请记住右键单击要运行的项目,然后单击“设置为启动项目”。
莱城狮

1
发现。但显然在VS2017中,它不是“调试”,而是“调试”。我们可能永远都不知道为什么。
威尔逊,

3
确保在“属性”页面顶部的下拉列表中选择了正确的配置,即与尝试运行的配置相同。
史蒂夫·史密斯

55

此处提供了有关在Windows上调试MozillaMozilla.org常见问题解答

简而言之,可以从命令行在程序上调用Visual Studio调试器,从而允许在直接在命令行上调用命令行程序时指定命令行参数。

对于Visual Studio 8或9,分别如下所示(分别为Visual Studio 2005或Visual Studio 2008)

  devenv / debugexe'程序名称''程序参数'

也可以执行资源管理器操作以在Visual Studio调试器中启动程序。


17

即使您确实在Visual Studio外部启动可执行文件,仍然可以使用“附加”命令将Visual Studio连接到您已经在运行的可执行文件。这可能很有用,例如当您的应用程序在另一个应用程序中作为插件运行时。


是的,附加Ctrl+Alt+P(或单击“调试”>“附加以处理...”)。但这并不能真正回答OP问题;)
T_D

7

Microsoft Visual Studio Ultima 2013。

您可以转到DEBUG菜单→ Main Properties配置属性Debugging,然后将看到命令行参数框。

实际上,您可以为所有不同的配置设置相同的输入参数,而不仅仅是调试。

从配置的下拉菜单中选择:所有配置,然后插入输入参数(每个参数用空格分隔)。

现在,您可以在不同的模式下执行程序,而不必每次都更改输入参数。


有点像MS VS 2015中的工作。在前往“ Debug-> {projectname} properties”之前,我必须打开“配置管理器”,可通过默认包含“ Debug”和“ Release”的下拉列表访问该配置器。弹出一个窗口,我可以在其中添加新的“配置”项。这些项目在“调试-> {projectname}属性”中可用。
AMartinNo1'6

2

这可能会对仍然有问题的某些人有所帮助。我使用Visual Studio 2015,并且只能在更改的定义时传递参数argv

代替

int main(int argc, char **argv){
}

我不得不用

int main(int argc, char *argv[]){
}

我不知道为什么有必要,但是它有效。


这是什么?C ++本机?C ++托管(.NET)?
Peter Mortensen

发生了同样的问题,但上述两个声明均无效。由于我在64位计算机上工作,因此解决方案将平台从x86更改为x64。
hfrmobile

2

在具有.NET Core控制台应用程序的Visual Studio 2017中,执行以下操作:

在“ 解决方案”窗口中的“ 项目”上单击鼠标右键,选择“属性”,“ 调试”(在左侧),然后将参数输入到“应用程序参数”字段中

请注意,它们应以空格分隔。


1

在Visual Studio 2010中,右键单击项目,选择“ 属性”,在左窗格中单击“配置属性”部分,然后单击“ 调试”,然后在右窗格中有一个用于命令参数的框。

在那输入命令行参数。你已准备好出发。现在调试并查看结果。如果您厌倦了更改属性,则可以在程序中直接直接输入。


1

右键单击Visual Studio的解决方案”窗口中的项目,选择“调试”(在左侧),然后将参数输入到“命令参数”字段中:

在此处输入图片说明


1

在VS 2015及更高版本中,使用“ 智能命令行参数”扩展。该插件添加了一个窗口,可用于打开和关闭参数:

智能命令行参数界面

该扩展还将参数存储在JSON文件中,使您可以将其提交到源代码管理。除了确保您不必每次都键入所有参数之外,这还为您的文档提供了有用的补充,以供其他开发人员发现可用的选项。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.