質問: お世話になっております。 node.jsのexec(Sync)を利用して、C#モジュールのexeファイルを実行しようとすると、 下記のエラーがコンソール上に出力されます。 > > Exception.ToString() が失敗したため、例外文字列を表示できません。 > > > nodeを利用せず、直接cmd上でexeを実行すると、正常終了しております。 調査した結果、C#上で「Console.SetCursorPosition」を利用していると、 上記問題に遭遇するのですが、何が原因なのかが不明です。 ご存じであれば、原因および回避方法を教えていただきたいです。
回答: `Console.SetCursorPosition`メソッドはコンソールが存在しない場合に`IOException`をスローします。これは「Windowsアプリケーションとしてビルドした場合」などが該当するのですが、おそらくnode.jsから起動された場合にもこの状態になっており`IOException`がスローされ、そのエラーの出力時に`Exception.ToString()`が失敗しているのだと思われます。 ですので`Console`の操作を行うかどうかをコマンドライン引数で制御するのが良いのではないでしょうか。