我的 O/R Designer 不断删除 Designer.cs 文件!
Posted
技术标签:
【中文标题】我的 O/R Designer 不断删除 Designer.cs 文件!【英文标题】:My O/R Designer keeps deleting the designer.cs file! 【发布时间】:2009-06-08 09:24:05 【问题描述】:我有一个奇怪的问题,有时当我使用 O/R 设计器(通常通过添加我在数据库中添加的字段)对 Linq 对象进行更改时,当我保存项目时,设计器。 cs 文件被删除!
幸运的是,我可以依靠源代码控制;我取消删除文件并取消对 csproj 文件的更改。但这真的很烦人,而且似乎没有任何充分的理由(我的项目包含大约 100 个对象这一事实并不是借口)。
有没有其他人遇到过这个问题?知道什么可能导致这种情况发生吗?
编辑 - 附加信息 - 我的 DataContext 类设置有自定义基类。你认为这可能与它有关...?
【问题讨论】:
跟SC没关系,为什么会这样? 【参考方案1】:您是否添加了部分类以向生成的类添加功能(等)?如果是这样 - 虽然听起来很奇怪,但您的部分类文件中任何 using
语句的位置实际上可能是一个中断代码生成的问题。尝试将它们移动到命名空间内。
不,我不是在开玩笑。
这种情况下的错误消息是“自定义工具 'MSLinqToSQLGenerator' 失败。未指定的错误”。更改自:
using System;
namespace MyNamespace
partial class MyDataContext
到:
namespace MyNamespace
using System;
partial class MyDataContext
修复它。怪异的错误。
【讨论】:
是的,我到处都在使用部分类!我对重新定位“使用”语句可能会产生任何影响的想法感到惊讶......你能提供更多细节吗? 好吧,我已经给出了一个完整的例子,我在发布之前在我的机器上进行了验证......请注意,一旦失败,您需要再次调整 dbml(将属性从 Foo 重命名为 Foo2并返回 Foo,例如)在它起作用之前。 哦 - 它似乎只发生在同名文件中......即,如果您有 MyDataClasses.dbml,请查看 MyDataClasses.cs(MyDataClasses.designer.cs 的孪生兄弟)跨度> 查看我的编辑 - 我误解了原来的问题。我只对数据类使用部分类——但我的数据上下文有一个自定义基类。认为这可能是问题的根源?【参考方案2】:在处理大数据集时,我遇到了与数据集设计器类似的问题。您无需使用源代码控制系统取消删除该文件:只需将您的工作保存在设计器中即可重新生成 .designer.cs 文件。也可以右键文件,选择“运行自定义工具”,效果一样。
【讨论】:
【参考方案3】:现在判断可能还为时过早,因为行为不稳定,但在我看来,如果我在 .dbml 文件上进行更改时在 IDE 编辑器中保持 Designer.cs 文件处于打开状态,那么它不会当我点击“保存”时不会被删除。
我已经尝试了几次,它似乎有效...没有很好的解释为什么会这样,但是问题也不是可以接受逻辑审查的问题...
稍后...
已经尝试了几次,我可以说这始终有效,所以我将其标记为答案!
感谢大家的帮助!
【讨论】:
【参考方案4】:每次更改和保存原始 O/R 设计器文件时,Visual Studio 都应启动生成 *.designer.cs 文件的自定义工具。 因此,它可能会以在创建新文件之前首先删除旧的 *.designer.cs 文件的方式工作。如果不新建,就是自定义工具有问题。
【讨论】:
【参考方案5】:我刚刚遇到了同样的问题,Marc 的建议让我克服了自定义工具错误。但是 .designer.cs 文件仍然被删除。
我注意到,如果我更改 DBML 并关闭 DBML(它要求保存,我选择是),它将删除 designer.cs 文件。如果我不关闭 DBML,而是告诉它立即构建,它似乎会重新生成 .designer.cs 文件并编译没有问题。
然后我可以关闭 DBML,一切都很好。
非常奇怪的互动。一位同事也遇到了与上述 Shaul 报告的类似问题。
【讨论】:
以上是关于我的 O/R Designer 不断删除 Designer.cs 文件!的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 QPushButton 的系统主题图标——Linux 上的 Qt Designer