ファイル パスを に渡そうとしてC# Console Application
いますが、コンソール アプリケーションに到達するまでに文字列が正しくないという問題があります。
ファイル パス パラメーターを使用して、コマンド ラインからアプリケーションを実行すると、次のようになります。
MyApp "C:\Users\DevDave\Documents\Visual Studio 2012\Projects\MyProject\"
Windows ダイアログがポップアップし、アプリケーションが動作を停止したことが通知されます。[デバッグ] オプションをクリックすると、次の結果が表示されますargs[0]
。
C:\Users\DevDave\Documents\Visual Studio 2012\Projects\MyProject"
最後にまだ引用符があることに注意してください。
2 番目の引数を渡す場合:
MyApp "C:\Users\DevDave\Documents\Visual Studio 2012\Projects\MyProject\" "any old string"
再びエラーが発生し、デバッグで表示すると、args[0] が次のようになっていることがわかります。
C:\Users\DevDave\Documents\Visual Studio 2012\Projects\MyProject" 任意
なぜこれが起こっているのか、私は困惑しています。私の唯一の推測は、文字列のバックスラッシュが文字列から何らかのエスケープ シーケンスを引き起こしているということですか? 編集:上記の文字列の例でも同じことが起こっていることに気付きました! \" がここで問題を引き起こしているようです。
現在のソリューション ディレクトリのファイル パスを渡したいだけで、ビルド前のイベントから $(SolutionDir) を使用してアプリを呼び出しています。他の方法で現在のソリューションのパスを取得できることを知っています。しかし、これは最も単純であり、期待どおりに機能しない理由が気になります。