背景:VS2017 Win10 C#代码
今天在VS上编写代码,编译出错了,双击错误跳到错误文件,但是却发现跳不过去
手动搜出这个文件,是我前几天刚新建的一个文件,发现这文件下面显示的不是所属项目,而是Miscellaneous Files(混乱文件???),如下图红框,正常的cs文件下都会有一栏是所属项目的,但是这个文件却变成了Miscellaneous Files
而且在右侧解决方案管理器里面,看到唯独这个文件没有可用展开的小箭头,正常文件都会有一个可以展开的小箭头用于标识类,函数等信息,而这个文件没有,但其实它应该有, 因为它也有类,函数等信息
造成的后果就是这个文件的智能提示,灯泡等编辑效果全部失效了
检查提交记录,和其他的没什么区别,
重启VS,clean ->rebuild都试了,没用
更新同事电脑的代码,查看该文件,也是一样的情况,也是Miscellaneous Files
造成的可能原因:
1、我在创建完这个文件后,直接去另一个文件拷贝了所有代码复制到这文件下,按理说没问题
2、可能是VS的bug、
自己的失误,编译配置和平台选错了
解决方法:
在该文件下所属的地方,再新建一个文件,或者删掉某些东西,然后这个文件就恢复正常了
可能就是要改一下项目配置,然后触发了VS再加载了这个项目
应该是选对的solution configuration和对的 solution platform
*********************再次更新****************************
今天又出现了类似的问题,同事提交了代码,新增了一个项目A,启动项引用了该项目,按理说正常编译是会预先编译A项目,但是却提示错误,找不到A.dll,确认下更新了代码,发现右侧解决方案的列表根本没有这个项目。。就是没有引入进来,但是log提交记录却是添加了该项目,然后找了另一个同事更新代码却能编译过。。。
我在文件夹中找到该项目,找到其中某个代码文件.cs,在VS中打开,果然,又出现了那个熟悉的Miscellaneous Files,也就是说VS无法正确识别这种文件,因为这次的情况是压根没添加进来,但是其实是添加了,只是我的vs可能出问题了
于是只能手动在添加一次A项目,果然,没错误了。
查看修改记录,发现.sln文件被我修改了,修改的地方有三处,其中两处是Any Cpu被改成了x86.还有一处位于最后,是一串字符串的改动,这个修改是我把项目位置选错了,忽略,那么现在看来跟编译平台有关
那就重新clone 一份新的代码看看行不行,结果是可以
最后仔细检查了下发现是解决方案配置出错了,我选择的是DebugMake,如图:DebugMake是我们项目在发布时候的一种编译模式
估计同事添加的时候并没有把所有配置全部配好,估计只配了debug和release,然后这里默认是Any cpu了,所以会有报错,提示/src/bin/x86/XXX.dll找不到,因为编译时会根据当前的配置和平台进行编译,所以生成的dll也是位于专属的配置和平台的文件夹下,所以改回Debug就OK了
配置就在Bliud->Configuration Manager中可配
那么之前那个问题估计也是一样,也是由于配置没搞对导致的,所以上方的解决方法不对,应该是选对的solution configuration和对的 solution platform ,因为添加删除操作估计重载了这个配置,所以误打误撞成功了。