【问题标题】:How do you specify command line arguments in a .csproj's StartProgram setting?如何在 .csproj 的 StartProgram 设置中指定命令行参数?
【发布时间】:2014-10-21 16:54:31
【问题描述】:

我正在尝试在 <StartProgram><PropertyGroup> 值中为可执行文件指定命令行参数目前看起来像这样

<PropertyGroup>
  <StartAction>Program</StartAction>
  <StartProgram>$(SolutionDir)\Edge.Express\node.exe</StartProgram>
</PropertyGroup>

我正在尝试自动化将我的库附加到正在运行的进程所涉及的步骤,以便我的团队可以直接调试库而无需额外的仪式(他们还不熟悉 Visual Studio)

我将节点可执行文件复制到 Edge.Express 文件夹,我的 Express 服务器配置位于该位置的 server.js 中。我想要做的是:

<PropertyGroup>
  <StartAction>Program</StartAction>
  <StartProgram>$(SolutionDir)\Edge.Express\node.exe server</StartProgram>
</PropertyGroup>

但这会引发以下异常

删除“服务器”参数会启动节点实例。

如何在我的&lt;StartProgram&gt; 设置中为 node.exe 提供“服务器”参数?

或者 有没有办法将 StartAction 设置为运行批处理脚本并将服务器启动推送到脚本中?

快速搜索没有返回任何关于可用 StartActions 的文档

【问题讨论】:

  • 使用 StartArguments 指定参数。
  • 成功了;现在出现新错误“程序 'node.exe' 已以代码 8 (0x8) 退出”但 StartArguments 是关键
  • 所以,我启动并运行了它。这样做的目的是允许我的团队直接调试库文件,而无需手动启动服务器(指向正确的配置),然后调试 |将库项目附加到正在运行的进程。我不得不处理代码 8 崩溃,但这是由于我的新服务器位置的相对引用定义不正确。 PSR 帮助我跟踪错误(控制台窗口崩溃并立即关闭),我现在拥有使用 CLR 库的 ExpressJS WebApi 的端点,并且该库可在 2013 Web Express 中调试;漂亮。

标签: c# visual-studio-2013 msbuild


【解决方案1】:

作为Hans pointed out:如果你想为&lt;StartAction&gt;指定参数程序,你必须使用&lt;StartArguments&gt;元素:

<StartAction>Program</StartAction>
<StartProgram>$(SolutionDir)\Edge.Express\node.exe</StartProgram>
<StartArguments>server</StartArguments>

【讨论】:

  • 当您在项目属性中选择了“启动项目”而不是“启动程序”时,&lt;StartArguments&gt; 是否可以工作?
  • @Dai 是的,这种组合很有效。只需将 Application 启动对象设置为接受参数的有效主方法即可。
猜你喜欢
  • 2011-06-28
  • 2012-02-28
  • 1970-01-01
  • 2016-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-24
  • 1970-01-01
相关资源
最近更新 更多