编程语言
首页 > 编程语言> > c# – 我的visual studio插件如何在构建之前检测编译器错误的方式与“删除和排序使用”相同?

c# – 我的visual studio插件如何在构建之前检测编译器错误的方式与“删除和排序使用”相同?

作者:互联网

我正在制作一个重构工具,它可以自动化一些与StyleCop相关的更简单的代码样式.我希望我的加载项能够做的事情之一(作为开发人员可以打开/关闭的可选功能)自动调用“组织使用 – >删除和排序”功能.这是一个简单的宏调用.

但是,我的问题是,当我经历并在解决方案中的每个.cs非设计器文件上递归调用宏时,此特定宏在执行之前检查错误.如果出现语法错误并且我的加载项开始调用该功能,则会为每个文件抛出一个对话框.

我想做的是使用函数用于动态检查错误的相同方法,然后如果出现导致对话框弹出的错误,只需弹出一次性通知并跳过调用在每个文件上.

我知道我的加载项可以检查错误列表,但是我发现很多次在“删除和排序”中触发问题的错误并不总是出现在列表中.我已将列表清空,然后我尝试“删除并排序”,它告诉我存在构建问题.然后我构建解决方案,确定它失败并填充错误.我看到的唯一解决方案是使用与“删除和排序”相同的功能来预先检查.

有没有人知道如何在构建之前检测编译器错误,方法与“删除和排序使用”相同?

解决方法:

我不确定你在谈论什么样的错误,我会假设它们是IntelliSense解析器生成的错误.是的,该解析器不是很可靠.它并不是一个完整的C#解析器,它被优化为完成一个非常不同的工作:提供上下文相关的帮助,即使代码不完整且无法编译.除了等待下一个VS版本之外,没有任何其他方法可以让它更可靠.

但令我感到震惊的是,你可能正试图解决错误的问题.关键问题是您的加载项似乎正在删除使用不应删除的指令.真正的解决方法是改进您的代码分析引擎,以便可靠地检测真正的命名空间依赖关系.试图猜测哪些是重要的,希望IntelliSense会抱怨只会让您的客户感到沮丧.

标签:c,visual-studio-2008,compiler-errors,add-in,error-detection
来源: https://codeday.me/bug/20190710/1423094.html