4

我一直在愉快地编写一个体面的解决方案(超过 13k LOC,5 个项目),它利用 Linq to 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 最近在他的“网络日志”上写了同样的经历。他链接到另一个具有相同问题的博客并使用了相同的操作

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

4

4 回答 4

2

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

谢谢(你的)信息。

于 2009-01-27T15:00:09.087 回答
2

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

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

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

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

于 2010-08-18T13:46:28.823 回答
1

TBH,我遇到过几个这样的情况,文件“似乎发疯了”。但是,经过调查,文件似乎以某种方式、形状或形式发生了变化。(例如,有时可以对无意中更改了某个似乎无关的属性)。

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

于 2008-08-26T19:11:59.350 回答
1

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

于 2013-01-29T14:45:38.150 回答