我们编写了一个自定义 msbuild 任务,它对我们项目中的代码文件进行一些预处理。我们希望能够在标准错误列表窗口中显示错误和警告。
Visual Studio 提供了应该执行此操作的 TaskLoggingHelper (Log.LogError) 方法......但我发现 Log.LogError(message, messageArgs) 没有填写正确的文件名和行号...... Log.LogError(subCategory, errorCode, helpKeyword, file, lineNumber, columnNumber, endLineNumber, endColumnNumber, message, messageArgs) 返回一个错误,指出即使我明确设置了 message 也不能为空。
似乎 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 并在前三个参数中添加了一些文本。我得到的反应令人惊讶...... ErrorList 窗口中列出的消息是“test1”而不是“错误消息文本”。不过,不确定这是否能说明情况。
戴夫