2011-09-23 149 views
5

我们有一个控件项目,其中包含我们的应用程序中使用的许多控件。这些控件有许多旧的和许多冗余属性,并且几乎没有任何属性在其上指定属性(例如特别是DefaultValue())。强制WinForms重新生成.designer.cs文件

作为清理工作的一部分,我们为属性添加了属性,并且正在寻找删除多余的属性。

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

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

有谁知道一种方法来做到这一点?

编辑:

为了澄清,我的意思是不是要删除的属性直线距离,但是到了DesignerSerializationVisibity()属性应用到他们告诉设计师不写他们。然后,一旦我们更新了所有设计器文件,我们可以删除这些属性。

另请参见:

Automatic regenerate designer files

回答

4

不可能的,你不能让设计师解析的InitializeComponent()时,它包含属性赋值为您删除或重命名的属性。它必须先解析它才能重新生成代码。

唯一真正的方法是首先将[DesignerSerializationVisibility]属性应用于旧属性,使其不再写属性分配。然后加载每个表单并做一个简单的编辑,以使其重新生成InitializeComponent(),现在不需要属性分配。然后你可以删除它们。直接编辑该方法可能会更快。

+0

我的意思是不去除属性,而是将Browsable(False)属性应用于它们,以告诉设计者不写它们。然后,一旦我们更新了所有设计器文件,我们可以删除这些属性。 – Pondidum

+0

不,[可浏览]仅影响“属性”窗口中的可见性。你确实希望[DesignerSerializationVisibity]避免写入。 –

+0

谢谢,更新的问题反映了这一点。 – Pondidum

相关问题