Reb*_*ott 12 c# msbuild visual-studio-2008 visual-studio
我编写了一个命令行工具,它预处理了许多文件,然后使用CodeDom编译它们.该工具将版权声明和一些进度文本写入标准输出,然后使用以下格式从编译步骤中写入任何错误:
foreach (var err in results.Errors) {
// err is CompilerError
var filename = "Path\To\input_file.xprt";
Console.WriteLine(string.Format(
"{0} ({1},{2}): {3}{4} ({5})",
filename,
err.Line,
err.Column,
err.IsWarning ? "" : "ERROR: ",
err.ErrorText,
err.ErrorNumber));
}
Run Code Online (Sandbox Code Playgroud)
然后它写入错误的数量,如"14个错误".
这是错误如何出现在控制台中的示例:
Path\To\input_file.xrpt (73,28): ERROR: An object reference is required for the non-static field, method, or property 'Some.Object.get' (CS0120)
Run Code Online (Sandbox Code Playgroud)
当我在VS2008中将其作为自定义工具运行时(通过在我的项目程序集之一的后期构建事件命令行中调用它),错误在错误列表中显示格式很好,每列中都有正确的文本.当我翻转文件名时,会弹出完全限定的路径.行和列与源文件不同,因为预处理很好.唯一突出的是列表中给出的项目是具有后构建事件的项目.
问题是,当我双击错误时,没有任何反应.我原本希望文件在编辑器中打开.
我很清楚地知道Microsoft.VisualStudio.Shell.Interop命名空间,但我认为应该可以通过写入标准输出来实现.
编辑:我注意到了一些问题,并自己解决了这个问题:
| 归档时间: |
|
| 查看次数: |
2573 次 |
| 最近记录: |