2

我有一个奇怪的问题,有时当我使用 O/R 设计器(通常通过添加我在数据库中添加的字段)对 Linq 对象进行更改时,当我保存项目时,designer.cs 文件得到删除!

幸运的是,我可以依靠源代码控制;我取消删除文件并取消对 csproj 文件的更改。但这真的很烦人,而且似乎没有任何充分的理由(我的项目包含大约 100 个对象这一事实并不是借口)。

有没有其他人遇到过这个问题?知道什么可能导致这种情况发生吗?

编辑- 附加信息 - 我的 DataContext 类设置有自定义基类。D'ya认为这可能与它有关......?

4

5 回答 5

6

您是否添加了部分类以向生成的类添加功能(等)?如果是这样 - 虽然听起来很奇怪,但using部分类文件中任何语句的位置实际上可能是一个中断代码生成的问题。尝试将它们移动到命名空间内。

不,我不是在开玩笑。

这种情况下的错误消息是“自定义工具 'MSLinqToSQLGenerator' 失败。未指定的错误”。变化自:

using System;
namespace MyNamespace {
    partial class MyDataContext {}
}

到:

namespace MyNamespace {
    using System; 
    partial class MyDataContext {}
}

修复它。怪异的错误。

于 2009-06-08T11:44:45.393 回答
4

在处理大数据集时,我与数据集设计器有类似的问题。您无需使用源代码控制系统取消删除该文件:只需将您的工作保存在设计器中即可重新生成 .designer.cs 文件。您也可以右键单击该文件并选择“运行自定义工具”,效果相同。

于 2009-06-08T09:39:50.310 回答
1

现在判断可能还为时过早,因为行为不稳定,但在我看来,如果我在对 .dbml 文件进行更改时保持在 IDE 编辑器中打开 Designer.cs 文件,那么它不会被删除当我点击“保存”时。

我已经尝试了几次,它似乎有效......没有很好的解释为什么会这样,但问题也不在于可以接受逻辑审查......

之后...

尝试了几次之后,我可以说这始终有效,所以我将其标记为答案!

感谢大家的帮助!

于 2009-06-24T06:48:02.880 回答
0

每次更改和保存原始 O/R 设计器文件时,生成 *.designer.cs 文件的自定义工具都应由 Visual Studio 启动。因此,它可能会以在创建新文件之前首先删除旧的 *.designer.cs 文件的方式工作。如果它没有创建一个新的,那就是自定义工具的问题。

于 2009-06-08T10:15:18.587 回答
0

我刚刚遇到了同样的问题,Marc 的建议让我克服了自定义工具错误。但是 .designer.cs 文件仍然被删除。

我注意到,如果我更改 DBML 并关闭 DBML(它要求保存,我选择是),它将删除 designer.cs 文件。如果我不关闭 DBML,而是告诉它立即构建,它似乎会重新生成 .designer.cs 文件并编译没有问题。

然后我可以关闭 DBML,一切都很好。

非常奇怪的互动。一位同事也遇到了与 Shaul 上述报告类似的问题。

于 2009-11-07T20:01:05.647 回答