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

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

将项目文件添加到存储库是可以接受的,因为这个repo只适用于我们两个人使用Visual C#Studio。 但感觉就像在那里有一些不相关的文件。 熟悉Visual C#Studio项目文件的人能否告诉我哪些文件可以安全地被svn忽略?

一些可疑文件:

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

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

不包括
箱子
OBJ
名为.suo *
*。用户
_Resharper* (如果你有Resharper )

包括
*的.sln
* .csproj的

您也可以在github上检查.gitignore文件以获得visual studio项目 。

.csproj定义了项目结构。 这是至关重要的。

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

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

不应该版本化:

  • .csproj.user是用户的项目文件设置(例如启动项目)
  • .suo是用户的解决scheme文件设置

应该版本化:

  • .sln是解决scheme文件本身(它包含的项目等)
  • .csproj是项目文件

我不知道“contentproj”,但它听起来像是一个项目文件,应该在svn下。

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

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

需要…

* .sln – 解决scheme文件包含对项目之间所有项目和依赖项的引用。
* .csproj – 项目文件本身。 这些告诉哪些文件包含在项目中,引用和项目的构build步骤。

不…

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

只要补充一下,在构build时重新生成的东西都应该被排除。 例如,从预build事件生成的文件,或在某些情况下自定义工具。

我们也使用Visual Studio C#和SVN,并且我不知道所有的项目文件,但是我们只排除完整的bin目录。

你肯定需要csproj文件…你可能想尝试AnkhSVN或VisualSVN,那些VS插件只添加所需的文件到SVN。

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

我build议这样做,因为这是一个很好的方式来学习如何一个解决scheme是VS的结构。

我将Visual Studio解决scheme用户选项文件(* .suo)和二进制文件目录省略掉,因为它们在您每次构build解决scheme( binobj文件夹)时都会重新编译。

检查一下 – inputvisualstudio ,你将会为你生成一个.gitignore文件,如果你有一个包含多种语言的解决scheme,你也可以连接多个语言/ ide'忽略文件。