问题:在原.NETFramework项目下,新增一个Controller。本地debug通过后,发布到线上后,发现该controller无效。校对日期,发现文件日期一直还是旧版本。
解决过程:重新开启本地debug调试,没问题。本地release调试,发现同样问题。
1.可能是配置项的问题吗?查看svn,对比更改项,发现没有更改;
2.项目property设置?发现也没有更改;
3.生成的bin文件问题?删掉项目的bin文件,重新生成,依然无法生成新的dll。
问题没解决,小小的问题没解决,真是大大的打击,想想要不就把跟项目无关,自动生成的文件夹删掉(主要是bin和obj),重新生成,解决了。
反过来,我们看对于obj这个文件夹的作用是什么,有个介绍是这么说的:obj是object的缩写,用于存放编译过程中生成的中间临时文件。其中都有debug和release两个子目录,分别对应调试版本和发行版本,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。由此可见,这个问题或许跟obj文件不更新相关,因为之前是已经测试过去掉bin文件生成,然并卵。所以有遇到新增或修改代码无法生成新dll的同学可以尝试下是否可行。
查看了编译相关知识点,也没具体的一个解释bin和obj是在哪一步产生,哪一步是检测更新的。望知道的同学,告知一声,在此不胜感激。