自动重新生成设计器文件

最近我对我们使用的很多控件进行了一些改进,例如给出属性默认值并使按钮变为私有而不是受保护。 通过进行这种调整,您需要重新生成具有此控件的表单的设计器文件或从控件inheritance的控件。

在过去,这不是一个真正的问题,因为我们只有20-30个表格。 目前我们有超过300种表格,这意味着在VS2010中开设相同数量的设计师。

所以我的问题是:您知道一种自动化此过程的方法,以便重新生成所有表单吗?

我一直在考虑一个查找设计器文件并打开文件的宏(打开最多25-50个文件以确保VS不会崩溃),但我无法使其工作。

我希望有人有个建议!

我发现做你想要的唯一方法是打开表单设计器,添加一个控件,然后保存。 这将重新生成设计器代码。 接下来删除新添加的控件,再次保存并关闭。

我通常通过双击工具箱中的按钮来添加一个按钮。 这会将按钮放在位置0,0。

几个月前我用一个包含大约100个表单和用户控件的项目做了这个。 我记录了一个临时宏,然后为每个表单/用户控件运行宏,并检查结果,而不是在项目文件上递归的宏。

不要将重构与重新格式化混淆。 我经常以大型forms优化和/或修改设计器代码。 例如,我将更改添加到面板的订单控件,以及如何将面板添加到其他面板。 我不会盲目地重新设计设计师代码。

我也遇到了这个问题(另请参阅: 强制WinForms重新生成.designer.cs文件 )。

最后,我删除的大多数属性都是唯一命名的,我能够编写一个shell脚本来从包含属性名称的设计器文件中删除行。

请注意,这实际上删除了该行,而不仅仅是留下一个空行。
它需要从Bash Shell运行,如果你安装了msysgit,那shell就可以了。
在这一个中, TextForeColor是被删除的属性。

 #!/bin/bash files=$(find . -type f -name '*.Designer.cs' -print0 | xargs -0 grep -l 'TextForeColor') for file in $files do echo $file sed '/TextForeColor/ d' $file >$file.tmp mv $file.tmp $file done 

使用表单的inheritance而不是维护300多个控件的更改。