Visual C# Studio 项目中的哪些文件不需要版本控制?

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

我是 Visual C# Studio 的新手(实际上使用的是 Express 版本,但另一个开发人员正在使用完整版本),并且我们正在使用版本控制 (svn)。

将项目文件添加到存储库对我来说是可以接受的,因为这个存储库仅适用于我们两个使用 Visual C# Studio 的人。但感觉里面有一些不相关的文件。熟悉 Visual C# Studio 项目文件的人可以告诉我哪些文件可以安全地被 svn:ignored 吗?

一些可疑文件:

  • 项目.csproj
  • project.csproj.Debug.cachefile
  • 项目.csproj.user
  • 项目.sln
  • 项目.suo
  • 内容\Content.contentproj

我确定 .sln 是必需的,但是这个 .suo 是什么?和.csproj?这些是否可以/应该由 Visual C# Studio 在加载项目时生成?

c# visual-studio visual-studio-2008 svn
11个回答
43
投票

不包括
垃圾箱
对象
*.索
*.用户

_Resharper*
(如果您有 ReSharper

包括
*.sln
*.csproj

您还可以在 GitHub 上检查 Visual Studio 项目的 .gitignore 文件。


15
投票
.csproj 定义项目结构。这很重要。

这是我添加到 Tortoise SVN 中的全局忽略列表中的内容:

*.suo *.user bin obj *.pdb *.cache *_svn *.svn *.suo *.user *.build-res TestResults _ReSharper*
    

13
投票
不应进行版本控制:

    .csproj.user 是用户的项目文件设置(例如启动项目)
  • .suo是用户的解决方案文件设置
应该进行版本控制:

    .sln 是解决方案文件本身(它包含哪些项目等)
  • .csproj 是项目文件
我不确定“contentproj”,但听起来它是一个项目文件,应该位于 svn 下。


6
投票
.sln 文件与 .proj 文件(每个项目一个)一起定义您的解决方案,因此请将它们保留在您的 svn 中!

您可以跳过 .suo 文件(个人设置 - 无论如何都是二进制文件)以及 bin 或 obj 文件夹。 .cache 文件也可以保留。


1
投票
补充一下,在构建时重新生成的任何内容都应该被排除。例如,从预构建事件生成的文件或在某些情况下是自定义工具。


0
投票
需要...

*.sln - 解决方案文件包含对所有项目的引用以及项目之间的依赖关系。

*.csproj - 项目文件本身。这些告诉我们项目中包含哪些文件、引用以及项目的构建步骤。

不是...

*.suo - 这是一个用户设置文件...


0
投票
您肯定需要 csproj 文件...您可能想尝试 AnkhSVN 或 VisualSVN,这些 VS 插件仅将所需的文件添加到 SVN。

或者您可以从目录结构中删除文件,直到它不再加载。

我建议尝试这种方式,因为这是学习如何通过 VS 构建解决方案的好方法。


0
投票
我省略了 Visual Studio 解决方案用户选项文件 (*.suo) 和二进制文件目录,因为每次构建解决方案时它们都会重新编译(

binobj 文件夹)。


0
投票
其他答案中尚未指出这一点:

如果您将 Visual Studio

与 Unity 3D 结合使用,您可以安全地将 *.csproj 和 *.sln 添加到 .gitignore 文件中,这与通常情况相反。

事实上,项目结构是由Unity本身管理的,而不是由Visual Studio管理的。将它们保留在源代码管理中的唯一后果是冲突,如果由于某些原因在提交者之间使用不同的 Visual Studio 版本,则更是如此。

Unity 3D 的 .gitignore 示例:

https://github.com/github/gitignore/blob/master/Unity.gitignore


-1
投票
我们还使用 Visual Studio C# 和 SVN,我不知道所有项目文件,但我们只排除完整的

bin 目录。


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