我们有一个控件项目,其中包含在我们的应用程序中使用的许多控件。这些控件上有很多旧的和很多冗余的属性,而且几乎没有一个在它们上面指定了属性(特别是 DefaultValue()
)。
作为清理它们的工作的一部分,我们已将属性添加到属性中,并希望删除多余的属性。
作为其中的一部分,我们想要做的是清除 winforms 设计器生成的代码(xxxxxx.designer.cs
和 xxxxxx.designer.vb
文件)。一些属性是直接删除的,为此我们能够使用 Grep 和 Sed 删除有问题的行,但我们正在寻找一种方法让 Visual Studio(或其他软件)重新生成文件。
由于我们有 100 多个表单,手动打开每个表单并对其进行修改是不可行的。
有谁知道这样做的方法吗?
编辑:
澄清一下,我的意思不是立即删除属性,而是将 DesignerSerializationVisibity()
属性应用于它们以告诉设计者不要编写它们。然后,一旦我们更新了所有设计器文件,我们就可以删除属性。
另请参阅:
最佳答案
不可能,当 InitializeComponent() 包含您已删除或重命名的属性的属性分配时,您无法让设计器解析它。它必须先解析它,然后才能重新生成代码。
唯一真正的方法是首先将 [DesignerSerializationVisibility] 属性应用于旧属性,这样它就不再写入属性赋值。然后加载每个表单并进行简单的编辑以使其重新生成 InitializeComponent(),现在没有属性分配。然后你可以删除它们。直接编辑方法可能会更快。
关于c# - 强制 WinForms 重新生成 .designer.cs 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7529352/