在保存时对设计器代码排序

时间:2014-07-09 11:48:51

标签: c# winforms visual-studio

在Visual Studio Designer中打开表单时,生成的设计器文件'内容随机混淆。这包括文件

  • Form.Designer.cs和
  • Form.resx

使用版本控制系统时,这是一场真正的噩梦。 是否有一种方法(扩展名?)在保存之前对所有设计器文件进行排序和清理?这将解决我与WinForms相关的大部分问题,因为它可以逆转设计师所做的所有混乱。

2 个答案:

答案 0 :(得分:3)

这个问题肯定会使合并变得困难 - 我理解你的痛苦。

阅读此前SO帖子: " Why does C# designer-generated code (like Form1.designer.cs) play havoc with Subversion?"

基本上你可以创建一个工具来按字母顺序对所有代码进行排序,以便为代码的随机放置提供顺序,但它本身就是一个黑客攻击并且可能涉及很多痛苦。我个人建议改变你的工作习惯,以减少这种情况。

  • 缩短合并之间的时间
  • 一次限制对1个开发人员的表单访问。
  • 在进行更改的开发人员的指导下合并,因为他们会更清楚地知道什么看起来不错。
  • 如果您只是进行了代码更改,请不要打开设计师,即没有任何视觉上的变化。
  • 如果您100%确定没有更改任何内容,请在合并前撤消对设计器文件的更改。

答案 1 :(得分:0)

这不是有关自动排序Form.Designer.cs的技巧;但是,它确实有助于避免Visual Studio对Form.Designer.cs文件所做的所有修改的合并帮助。

代替changing your work practices(由Jonathon Lee代替(或在conditions on a dialog node in IBM Watson Assistant之外),尤其是严格限制“一次只允许1位开发人员访问表单”

在进行实际更改之前,请确保Form.Designer.cs文件是根据Visual Studio在单独的提交中组织的。

  • 触发Visual Studio对Form.Designer.cs文件的重新组织
    (对我来说,将控件从TableLayoutPanel中的一个单元格移到另一个单元格,然后再移回去就可以了。)
  • 提交Visual Studio的更改并将其标记为未更改。
  • 对表单进行修改
  • 触发Visual Studio对Form.Designer.cs文件的重组
  • 提交更改并描述您的工作。

结果:

  • 这有助于审阅者区分要审阅的更改和噪声。
  • 这易于合并:
    • 或者,您的版本控制系统检测到两个提交具有相同的效果,并且一个提交就足够了,并且可以合并而不会发生冲突;
    • 或者,您可以通过仅应用一个清除提交并放弃另一个来手动解决冲突。