强制WinForms重新生成.designer.cs文件

时间:2011-09-23 13:01:53

标签: c# winforms visual-studio

我们有一个控件项目,其中包含我们的应用程序中使用的许多控件。这些控件上有许多旧的和多个冗余属性,并且几乎没有一个属性具有指定的属性(特别是DefaultValue())。

作为清理工作的一部分,我们为属性添加了属性,并希望删除多余的属性。

我们想要做的是从winforms设计器清除生成的代码(xxxxxx.designer.csxxxxxx.designer.vb文件)。一些属性是直接删除,我们可以使用Grep和Sed来删除有问题的行,但我们正在寻找一种方法来使Visual Studio(或其他东西)重新生成文件。

由于我们有100个表单,因此手动打开每个表单并修改它们是不可行的。

有谁知道这样做的方法?

修改

澄清一下,我的意思是不是立即删除属性,而是将DesignerSerializationVisibity()属性应用于它们以告诉设计者不要写它们。然后,一旦我们更新了所有设计器文件,我们就可以删除属性。

另见:

Automatic regenerate designer files

1 个答案:

答案 0 :(得分:4)

不可能,如果设计器包含已删除或重命名的属性的属性赋值,则无法解析InitializeComponent()。它必须先解析它才能重新生成代码。

唯一真正的方法是首先将[DesignerSerializationVisibility]属性应用于旧属性,以便它不再写入属性赋值。然后加载每个表单并进行一个简单的编辑,让它重新生成InitializeComponent(),现在没有属性赋值。然后你可以删除它们。直接编辑方法可能会更快。

相关问题