我应该将Settings.Designer.cs置于版本控制之下吗?

问题描述 投票:0回答:3

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

c# visual-studio version-control
3个回答
12
投票

我相信

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

我在使用这里的其他答案关于这个问题的建议时遇到了问题。

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

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

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

我在另一个问题的这个答案中找到了一个很好的经验法则,基本上如果构建系统修改了文件,那么不要将其放入源代码管理中,但是如果仅在更改另一个文件时才修改它并且是由 Visual Studio 生成的,那么它可能应该处于版本控制中。

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


3
投票

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

Visual Studio 可以自动生成此文件。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.