我刚刚继承了一个由100 K+行C#/.NET代码组成的系统。在过去的几年里,该系统的许多功能已经被其他系统所包含。我们继续运行该系统的唯一原因是它提供了IOT/传感器功能的一个小子集。基本上,它现在只用于配置传感器和接收传感器通信量并将其记录到数据库中。我希望识别正在执行的代码,然后我想淘汰现有的遗留系统。
我已经能够在Visual Studio的开发中逐步完成系统,但我无法模拟系统在生产中看到的所有传感器、错误和传感器消息类型,因此我怀疑我是否看到了正在执行的所有代码。
有没有什么方法可以切换运行时开关,向现有解决方案添加全局代码等,以便它导出在生产中执行的程序和函数名?我不想用新的调试代码接触每个程序/函数,但我担心这可能是获得所需信息的唯一方法。
还有别的主意吗?
谢谢你,特里
(我试过在Visual Studio中逐步执行代码并检查堆栈跟踪,但这并不能确保我看到了生产环境中正在执行的所有代码。我查看了Reflection类,但不清楚这是否是我想要的方法,因为我不想在每个函数/程序中插入调试代码。)
1条答案
按热度按时间p4rjhz4m1#
如果要提取的代码不使用反射,并且您有一条将代码传输到.Net 5和更高版本的简单途径,则可以使用Code Trimming让.net删除所有未使用的代码。之后,可以对生成的程序集执行decompile操作,以查看可以删除哪些代码。这只是一个粗略的想法。可能有更简单的方法来获得应用程序调整结果。