【问题标题】:Should I put Settings.Designer.cs under Version Control?我应该将 Settings.Designer.cs 置于版本控制之下吗?
【发布时间】:2014-03-07 22:02:15
【问题描述】:

Visual Studio 自动生成此文件。搜索它的信息告诉我永远不要编辑这个文件。很好,但是我需要将它存储在我的 VCS 中还是 VS 可以在需要时自动重新生成它?

【问题讨论】:

    标签: c# visual-studio version-control


    【解决方案1】:

    我认为Settings.Designer.cs 和其他类似文件应该受到版本控制。

    我在使用other answer here 关于这个问题的建议时遇到了问题。

    Settings.Designer.cs 仅在对 Settings.settings 进行更改时才会被修改,并且它是由 Visual Studio 自动生成的,而不是由构建工具生成的。

    当我删除 Settings.Designer.cs 时,我遇到了 Visual Studio 没有按预期自动生成文件的问题,我不得不对我的项目进行多次重建/重新加载,直到它最终随机出现,我'我不确定到底是什么触发了它。

    此外,我在 TeamCity 构建服务器上也遇到了问题,因为那里的构建工具没有生成文件,所以我有构建失败,说它无法找到 Settings.Designer.cs

    我在this answer 的另一个问题上找到了一个很好的经验法则,基本上如果构建系统修改了文件,那么不要把它放在源代码控制中,但是如果它只在你对另一个文件进行更改时被修改文件并且是由visual studio生成的,那么它可能应该在版本控制中。

    此外,Visual Studio 2017 可以在创建新项目时自动创建带有 .gitignore 文件的 Git 存储库,并且默认情况下所有 *.Designer.cs 文件都包含在 Git 存储库中。

    【讨论】:

    • 我认为这说明“默认情况下,所有 *.Designer.cs 文件都包含在 Git 存储库中。”这应该是公认的答案。
    【解决方案2】:

    将这些项目添加到版本控制的问题是,不同版本的visual-studio,或者其他环境可能会以不同的方式生成这些文件。这有时会导致在构建服务器等上出现恼人的冲突错误。

    VS 可以自动生成这个文件。

    【讨论】:

    • 感谢您的回答。为简单起见,我将解释您的答案:无需将 Settings.Designer.cs 存储在 VCS 中
    • 我将接受的答案更改为另一个,因为这两个选项的经验说服我将其置于版本控制之下,这也符合 Microsoft 的做法,如另一个答案所示。
    【解决方案3】:

    阅读此答案后,我继续删除了 Properties/Settings.Designer.cs,但在构建“文件丢失”的项目时出现错误。我的项目仍然有对它的引用。因此,您还必须从项目中删除引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 2016-03-03
      • 1970-01-01
      相关资源
      最近更新 更多