C# 保存时对设计器代码进行排序

C# 保存时对设计器代码进行排序,c#,winforms,visual-studio,C#,Winforms,Visual Studio,在Visual Studio Designer中打开表单时,生成的设计器文件的内容会随机混合。这包括文件 Form.Designer.cs和 Form.resx 当使用版本控制系统时,这真是一场噩梦。 是否有一种方法(扩展名?)可以在保存之前对所有设计器文件进行排序和清理?这将解决大多数与WinForms有关的VCS问题,因为它逆转了设计器所做的所有洗牌操作。这个问题确实使合并变得困难-我理解您的痛苦 阅读前一篇SO帖子: “” 基本上,您可以创建一个工具来按字母顺序对所有代码进行排序,以便

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

  • Form.Designer.cs和
  • Form.resx
当使用版本控制系统时,这真是一场噩梦。
是否有一种方法(扩展名?)可以在保存之前对所有设计器文件进行排序和清理?这将解决大多数与WinForms有关的VCS问题,因为它逆转了设计器所做的所有洗牌操作。

这个问题确实使合并变得困难-我理解您的痛苦

阅读前一篇SO帖子: “”

基本上,您可以创建一个工具来按字母顺序对所有代码进行排序,以便对代码的随机位置进行排序,但这是一种黑客行为,而且可能会带来很多麻烦。就我个人而言,我建议改变你的工作习惯,以减少这种情况的发生

  • 缩短合并之间的时间
  • 一次仅允许1名开发人员访问表单
  • 在做出更改的开发人员的指导下进行合并,因为他们会更好地了解什么看起来合适
  • 如果你只是在“更改代码”,就不要打开设计器
  • 如果100%确定没有更改任何内容,则在合并之前撤消对设计器文件的更改

    • 这个问题确实让合并变得困难-我理解你的痛苦

      阅读前一篇SO帖子: “”

      基本上,您可以创建一个工具来按字母顺序对所有代码进行排序,以便对代码的随机位置进行排序,但这是一种黑客行为,而且可能会带来很多麻烦。就我个人而言,我建议改变你的工作习惯,以减少这种情况的发生

      • 缩短合并之间的时间
      • 一次仅允许1名开发人员访问表单
      • 在做出更改的开发人员的指导下进行合并,因为他们会更好地了解什么看起来合适
      • 如果你只是在“更改代码”,就不要打开设计器
      • 如果100%确定没有更改任何内容,则在合并之前撤消对设计器文件的更改

      这不是关于自动排序Form.Designer.cs的提示;但是,它确实有助于避免使用Visual Studio对Form.Designer.cs-files所做的所有修改来合并帮助

      代替(或补充)(通过),尤其是限制“一次仅允许一名开发人员访问一个表单”,请执行以下操作:

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

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

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

      这不是关于自动排序Form.Designer.cs的提示;但是,它确实有助于避免使用Visual Studio对Form.Designer.cs-files所做的所有修改来合并帮助

      代替(或补充)(通过),尤其是限制“一次仅允许一名开发人员访问一个表单”,请执行以下操作:

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

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

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

      混淆是什么意思?这些是代码生成的文件-修改它们可能会破坏表单。重新安排声明顺序会如何破坏代码?您可能会破坏设计器否,它不会破坏任何东西。设计者不关心其生成的代码中的任何顺序(这无论如何都没有意义)。混合是什么意思?这些是代码生成的文件-修改它们可能会破坏表单。重新安排声明顺序会如何破坏代码?您可能会破坏设计器否,它不会破坏任何东西。设计者不关心其生成代码中的任何顺序(这无论如何都没有意义)。所有这些都是好的建议,特别是对于“一次只能访问一个表单1个开发人员”的建议。我从VSS(甚至TFS)中学到,允许对某个UI组件进行多次签出是一件非常麻烦的事。@DeanOC,我完全同意,合并已经够麻烦的了。很久以前,我经常广泛使用区域,但我很快就放弃了,因为它们有时会把合并搞得一团糟。你是对的,遵守这些规则会让事情变得更好。但还是很烦人。有时事情会出差错,因为有人忘了遵守规则