Debug.Print()の出力先をファイルにすることが出来れば、デバッグ環境が無い場合でも、ある程度デバックすることが出来るのではないかと思い調べてみました。
ソースコード
using System.Diagnostics;
using System;
using System.Windows.Forms;
// コンパイル
// csc /t:winexe Debug.cs /d:DEBUG
class Form1 : Form
{
Form1()
{
Debug.Print("Hoge");
}
[STAThread]
static void Main()
{
var dl = (DefaultTraceListener)Debug.Listeners["Default"];
dl.LogFileName = @".\Debug.log";
Application.Run(new Form1());
}
}
コンパイル
csc /t:winexe Debug.cs /d:DEBUG
実行
./Debug.exe
実行ファイルと同じディレクトリに「Debug.log」というファイル名でテキストファイルが出来上がります。
メモ帳で中身を覗くとDebug.Print()
で実行した文字列が出力されていることが確認出来ます。
ちなみにコンパイル時の/d:DEBUG
のオプションが無い場合、ファイルは作成されませんでした。
コメント