.net core 2.0的一次奇特经历

环境:.net core SDK版本 2.0.0-preview1-005977 

         VS 2017 version 15.3.0 preview 3.0

问题描述:今天在迁移Job的项目中,中午吃饭的时候项目还是能跑起来的,正常。吃完饭,然后回来,项目就挂掉了,在program.cs文件加载过程中直接抛异常:

System.StackOverflowException
点进异常信息中去看,就一条记录        $exception    The debugger is unable to evaluate this expression    System.StackOverflowException

由于周一的时候也遇到这个问题,当时的做法是:新建一个项目,把出错项目的东西都给复制过去,然后运行就好了。 今天又出现了这个问题了,我觉得一定要把它搞明白,不然问题可能还会出现。

问题查找过程:

   我把旧项目备份了一下,然后在旧项目的基础上把所有我写的东西都给删了,然后再运行项目,项目还是一样的错误。我开始觉得是不是的开发环境出问题了,然后新建了一个项目,结果这个测试的项目可以在本机运行成功,那么我的系统的运行环境是没有问题的。我有点怀疑是不是这个项目只要一出错,会生成某个文件,每次运行的时候,执行到这里就会出错。毕竟我现在两个项目从表面上看是一模一样的。

   接下来我对两个项目从文件管理器中进行比对,结果发现了一个问题,我的出错的项目的inDebug etcoreapp2.0目录下有一堆原来引用的*.dll 包,而新建的项目中什么都没有。

我于是检查了一遍我的csproj文件,结果出错的项目中除了系统生成的引用并没有加上额外的引用。感觉问题不应该出现在这里。

后来干脆一下把所有的dll给删除了,项目运行成功了。没有异常信息出现。那么问题就在这里了

后来一个一个排查之后发现是NewtonSoft.Json.dll这个包的错。删除之后问题解决了。

可是还有个疑问没有解决: 明明我没有引用那个dll 为什么放在了那里就会出现这个错误?等以后遇到了再实际解决吧!

原文地址:https://www.cnblogs.com/qulianqing/p/7087054.html