Ⅰ. 问题描述
今天一同事遇到的问题:使用Visual Studio
“生成” -> “重新生成解决方案”时出现错误”CS0006 未能找到元数据文件 bin\Release\ClassLibrary1.dll”,但是使用 “生成” -> “生成解决方案” ,或者F5直接运行程序调试都不会出现上述错误。
Ⅱ. 思路
首先想到的就是工程配置文件出现了问题,因此我就使用文本编辑器打开工程配置.csproj
文件,然后搜索”ClassLibrary1.dll”
搜索到的第一项是项目引用:

很正常的引用路径,我查看了一下该路径下确实存在”ClassLibrary1.dll” 文件
接下来继续搜索,找到了第二项:

哈,路径与报错信息一致,应该就是这里的问题了。这是一个分析器的配置文件,先删除这3行配置试试。
保存配置文件,然后返回Visual Studio
,提示检测到文件修改,点击“全部重新加载”

重新点击 “生成” -> “重新生成解决方案” ,问题得解。
Ⅲ. 分析
猜测是之前有开发人员比较粗心粗心,添加dll操作错了,把dll添加进了分析器,导致了项目配置文件多了Analyzer
节点(这还有一点题外话:不要引用bin路径下的dll啊)

然后如果点击”生成” -> “生成解决方案” 或者F5直接运行程序调试是不会去清理release文件夹的,所以该虽然有Analyzer
节点,但是也不会出错 ;但是点击”生成” -> “重新生成解决方案”会先执行一步”清理解决方案”的操作并去清理release文件夹,然后会把这个dll删了,Visual Studio
就报错了。
评论 (0)