是什么导致Visual Studio无法正确加载程序集?

时间:2020-03-05 18:43:29  来源:igfitidea点击:

我一直很高兴地在一个不错的解决方案(刚好超过13k LOC,5个项目)上进行编码,该解决方案利用Linq到Sql进行数据访问。突然之间,我执行了正常的构建,并且收到了甜美,甜蜜的模棱两可的信息:

错误1由于C:\ xxx \ xxx.dbml中的验证错误,构建失败。打开文件并解决错误列表中的问题,然后尝试重建项目。 C:\ xxx \ xxx.dbml

数周来我一直没有接触过我的数据访问层,并且没有对DBML文件进行任何调整。我尝试了许多繁琐的技巧,例如重新创建布局文件,进行复制并将现有文件重新添加到项目中,然后再重新启动Visual Studio(以防某些文件级损坏);一切都无济于事。

我忘了穿Visual Studio Skills +5护身符,所以我开始四处搜寻,发现唯一有意义的答案是重置软件包,因为Visual Studio无法正确加载程序集。运行" devenv.exe / resetskippkgs"后,实际上,我能够将dbml文件添加回DAL项目并重建解决方案。

我对它的修复感到高兴,但我也希望从这一经验中获得更深刻的理解。有谁知道在Visual Studio 2008中如何或者为什么发生这种情况?

新编辑:2008年10月30日
这不只是我发生的事情。
Rich Strahl最近在他的"网络日志"中写道了同样的经历。他链接到具有相同问题的另一个博客,并使用了相同的操作。

自从最初的帖子以来,我也几次遇到这个问题,使我认为这不是一些随机的问题。如果有人找到了明确的答案,请发表。

解决方案

回答

TBH,我曾有过几次这样的情况,其中文件"似乎发疯了"。但是,经调查发现,文件已经以某种方式,形状或者形式发生了变化。(例如,有时可以对文件进行更改通过在不相关的地方无意中更改属性来更改文件)。

我认为有太多可能真正导致此问题的问题,并且基于该问题已得到解决的事实,似乎找不到答案。

回答

在安装了适用于Visual Studio 2008的Phalanger之后,我尝试创建一个新的PHP WinForms应用程序。项目创建失败,并显示类似的错误消息,提示无法加载所需的DLL(无法加载文件或者程序集...)。在Visual Studio 2008命令Promtp中运行devenv.exe / resetskippkgs命令可立即解决此问题。

谢谢(你的)信息。

回答

当尝试在第二个解决方案(安装程序)中编译数据访问层时,我也收到此错误。我要做的是在dbml文件上运行"定制工具",并且做到了。

dbml文件中确实没有需要纠正的错误。

我的理论是,Visual Studio缓存dbml文件的编译版本,并且该缓存对于其他解决方案无效。我猜运行/ resetskippkgs与重新编译dbml文件具有相同的作用。

无论如何,还没有解决办法?