質問: Console.ReadLine().Trim(); Console.WriteLine(test); Console.WriteLine("続行..."); Console.ReadLine(); System.Threading.Thread.Sleep(200); } } } ``` というコードで、プロジェクトプロパティ-「デバッグ」タブ-「開始オプション」-コマンドライン引数 に < test.txt として、このプロジェクトのデバッグ実行ファイルの出力先フォルダに置きました。 test.txtは以下になります。 ``` 1 [EOF] ``` その上で、Visual Studio 2017の 「デバッグ」メニュー-「デバッグなしで開始」とすると、コマンドライン引数の設定は無視となりますが、 コマンドプロンプト画面で入力待ちとはなります。 →デバッグなしだから当然ですかね。 「デバッグ」メニュー-「デバッグの開始」とすると、コマンドプロンプト画面が表示され、 ``` 1 続行... ``` と表示され、コマンドプロンプト画面は、そのまま閉じられてしまいます。 恐らく、2つのReadLineでも、標準入力から何らかの入力を受けとって先に処理が進んでいると思われるのですが.. 標準出力をリダイレクトして結果を見るとかも考えられますが、できれば、 そのままコマンドプロンプト画面を閉じない方法で済ませられないかと思います。 以下のいずれかにアドバイス頂ければと思いますので、どうぞ宜しくお願いします。 ・「デバッグなしで開始」でコマンドライン引数を指定する方法 ・「デバッグの開始」で処理結果後、最後に入力待ちとなる方法
回答: ローダーを作りましょう。 まずソリューションに新しいコンソールアプリのプロジェクトを追加します。 これを仮に ConsoleApp2 とします。 すでにあるものを仮に ConsoleApp1 とします。 ソリューションエクスプローラーで ConsoleApp2 を右クリックし、スタートアッププロジェクトに設定します。 ConsoleApp2 に ConsoleApp1 のプロジェクトの参照を追加します。 ConsoleApp1 の Program を public class にします。 ConsoleApp2 の Program.cs を次のようにします。 ``` using System; using System.IO; namespace ConsoleApp2 { class Program { static void Main(string[] args) { var input = Console.In; Console.SetIn(File.OpenText("input.txt")); try { ConsoleApp1.Program.Main(args); } finally { Console.SetIn(input); } Console.ReadKey(); } } } ``` 以上です。