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

时间:2008-08-26 18:53:57

标签: visual-studio visual-studio-2008 linq-to-sql

我很乐意编写一个体面的解决方案(仅超过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最近写了他的“网络日志”about the same experience。他链接到另一个blog with the same issue and used the same action

自从这篇原帖以来,我几次遇到过这个问题,让我觉得这不是一个随机的问题。如果有人发现确定答案,请发帖。

4 个答案:

答案 0 :(得分:1)

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

感谢您的信息。

答案 1 :(得分:1)

在第二个解决方案(安装程序)中尝试编译数据访问层时,我也遇到此错误。我所做的是我在dbml文件上运行自定义工具,这样做。

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

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

无论如何,还没有解决这个问题吗?

答案 2 :(得分:0)

TBH,我有几个这样的实例,文件“似乎变得疯狂”。然而,经过调查,似乎文件已经以某种方式,形状或形式发生了变化..(例如,有时候变化可以通过无意中更改似乎无关的某个地方的属性来对文件进行处理。

我认为有太多可能导致这种情况的问题,并且基于问题已经解决的事实,似乎找不到答案..

答案 3 :(得分:0)

我在VS 2010中遇到了同样的问题(由于dbml文件中的验证错误,构建失败)。我通过查看dbml文件的设计器视图并将表稍微拖动到其他位置来解决此问题,以便刷新dbml布局等文件。这似乎可以解决问题,但这有点奇怪。