プロジェクト内のコードファイルの前処理を行うカスタムmsbuildタスクを作成しました。私たちができるようにしたいのは、標準のエラーリストウィンドウにエラーと警告を表示することです。
Visual Studioは、これを行うことになっているTaskLoggingHelper(Log.LogError)メソッドを提供します...しかし、Log.LogError(message、messageArgs)が正しいファイル名と行番号を入力しないことがわかりました...そしてLog.LogError(subCategory、errorCode、helpKeyword、file、lineNumber、columnNumber、endLineNumber、endColumnNumber、message、messageArgs)は、明示的に設定した場合でもメッセージをnullにできないことを示すエラーを返します。
Visual Studioがオーバーロードされた(より詳細な)メソッドを使用していないようです。
私が送信しているコード行は次のとおりです。
string fileName = "main.c";
int lineNum = 415;
int colNum = 5;
string message = "Error Message Text.";
Log.LogError("", "", "", fileName, lineNum, colNum, 0, 0, message, null);
誰かがこのメソッドのオーバーロードを使用してMSBuildのエラーをログに記録しましたか?
ありがとう
** アップデート **
ニックの回答(下記)を読んだ後、私は次のテストを行いました...
Log.LogError("test1", "test2", "test2", fileName, lineNum, colNum, 0, 0, message);
messageArgsを削除し、最初の3つのパラメーターにテキストを追加しました。私が得た応答は驚くべきものでした...ErrorListウィンドウにリストされたメッセージは「エラーメッセージテキスト」ではなく「test1」でした。しかし、これが状況に光を当てているかどうかはわかりません。
デイブ