我们有一个控件项目,其中包含我们的应用程序中使用的许多控件。这些控件上有许多旧的和多个冗余属性,并且几乎没有一个属性具有指定的属性(特别是DefaultValue()
)。
作为清理工作的一部分,我们为属性添加了属性,并希望删除多余的属性。
我们想要做的是从winforms设计器清除生成的代码(xxxxxx.designer.cs
和xxxxxx.designer.vb
文件)。一些属性是直接删除,我们可以使用Grep和Sed来删除有问题的行,但我们正在寻找一种方法来使Visual Studio(或其他东西)重新生成文件。
由于我们有100个表单,因此手动打开每个表单并修改它们是不可行的。
有谁知道这样做的方法?
修改
澄清一下,我的意思是不是立即删除属性,而是将DesignerSerializationVisibity()
属性应用于它们以告诉设计者不要写它们。然后,一旦我们更新了所有设计器文件,我们就可以删除属性。
另见:
答案 0 :(得分:4)
不可能,如果设计器包含已删除或重命名的属性的属性赋值,则无法解析InitializeComponent()。它必须先解析它才能重新生成代码。
唯一真正的方法是首先将[DesignerSerializationVisibility]属性应用于旧属性,以便它不再写入属性赋值。然后加载每个表单并进行一个简单的编辑,让它重新生成InitializeComponent(),现在没有属性赋值。然后你可以删除它们。直接编辑方法可能会更快。