「コンソール」タイプのac#プロジェクトがあり、親アプリ内から独自のアプリドメインで起動し、コンソールウィンドウを生成します。ただし、コンソールに書き込まれたテキストは表示されません。Console.ReadKey()
ただし、機能します。何が間違っている可能性があるのか?
注:親プロセスへのエコーは、親プロセスの組み込みコンソール(win32コンソールではなく、ある種のDirectX GUIウィジェット)Console.Out
にSystem.Console.Out
表示され、「null」ストリームではありません。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using ParentApi;
namespace LSTest4
{
class Program
{
static void Main(string[] args)
{
Console.OpenStandardOutput();
ParentApi.Echo(System.Console.Out.ToString());
Console.Out.WriteLine("monkeys");
Console.WriteLine("app start");
Console.Write("lalala");
Console.ReadKey();
ParentApi.Echo("app start");
}
}
編集:
さらに調査すると:
問題のコードは別のアプリケーションに注入され、注入は敵対的であり、「ParentApi」によって管理されており、注入ターゲットは標準ストリームを再マッピングしているようです。この場合、最善の方法は、トレースを他の方法で処理することです。WCFを使用して、トレース出力を外部プロセスにプッシュする場合があります。