Der*_*ler 3 c# visual-studio post-build
我有一个应用程序,应该在构建前和事件后的事件处理方面帮助我的项目.我正在使用ndesk.options进行命令行参数解析.当我的项目路径包含空格时,这给了我奇怪的结果.我认为这是ndesk.options的错,但我想我应该责备自己的应用程序.我把我的应用程序称为后建事件,如下所示:
build.exe --in="$(ProjectDir)" --out="c:\out\"
Run Code Online (Sandbox Code Playgroud)
args []的简单foreach显示以下内容:
--in=c:\my project" --out=c:\out"
Run Code Online (Sandbox Code Playgroud)
发生的事情是,每个参数中的最后一个被视为已被转义.因此删除了尾部反斜杠.整个事情被视为一个参数.
现在,我认为只是逃避第一个"我也很聪明",就像这样:
build.exe --in=\"$(ProjectDir)" --out=\"c:\out\"
Run Code Online (Sandbox Code Playgroud)
在这种情况下,结果args []看起来像这样:
--path="c:\my
project"
--out="c:\out"
Run Code Online (Sandbox Code Playgroud)
参数中的尾部反斜杠仍然被吞下,第一个参数现在被拆分.
将此args []传递给ndesk.options会产生错误的结果.
正确的命令行应如何显示,以便正确的元素以正确的args []插槽结束?或者,如果有或没有ndesk.options,如何解析这些命令行参数?任何建议都是受欢迎的.
提前致谢
你试图逃避最后的反斜杠吗?
build.exe --in="$(ProjectDir)\" --out="c:\out\\"
Run Code Online (Sandbox Code Playgroud)
这可能只有,只要ProjectDir结束\,应该给出.
这只是一个想法,但我没有试一试
编辑:
我发现一条评论意味着遗漏尾随"
| 归档时间: |
|
| 查看次数: |
4105 次 |
| 最近记录: |