ビルド前とビルド後のイベント処理の観点からプロジェクトを支援することになっているアプリケーションがあります。コマンドライン引数の解析にndesk.optionsを使用しています。プロジェクトパスにスペースが含まれていると、奇妙な結果になりました。これはndesk.optionsのせいだと思いましたが、私自身のアプリケーションが原因だと思います。私は自分のアプリケーションを次のようにビルド後のイベントと呼んでいます。
build.exe --in="$(ProjectDir)" --out="c:\out\"
args[]上の単純なforeachは次を表示します。
--in=c:\my project" --out=c:\out"
何が起こったのかというと、各パラメーターの最後の "はエスケープされたかのように扱われました。したがって、末尾のバックスラッシュは削除されました。そして、すべてが単一の引数として扱われます。
今、私は最初の「」もエスケープするだけで賢いと思いました。
build.exe --in=\"$(ProjectDir)" --out=\"c:\out\"
その場合、結果のargs[]は次のようになります。
--path="c:\my
project"
--out="c:\out"
パラメータの末尾の円記号は引き続き飲み込まれ、最初のパラメータが分割されます。
このargs[]をndesk.optionsに渡すと、間違った結果が生成されます。
正しい要素が正しいargs[]スロットに収まるように、正しいコマンドラインをどのように表示する必要がありますか?あるいは、ndesk.optionsの有無にかかわらず、これらのようなコマンドライン引数をどのように解析することになっていますか?どんな提案でも大歓迎です。
前もって感謝します