是否需要将C#项目中的所有文件置于版本控制之下?

时间:2013-11-17 19:17:12

标签: git

所以我决定学习C#。我下载了Visual studio,对于我的第一个项目,我只想创建一个简单的Hello world应用程序并将其置于源代码管理之下。我做到了,但是有很多自动生成的非源代码文件。

对于简单的“Hello world”应用程序文件包括: helloworld.vshost, helloworld.vshost.exe, helloworld.vshost.exe.manifest, HelloWorld.exe的, 所有的调试文件, 等

制作一个“Hello world”程序。只应该.cs文件受版本控制或所有这些随机文件

2 个答案:

答案 0 :(得分:7)

不需要*.vshost.*个文件 - 这些文件都用于Visual Studio调试器进程。

您不应将编译期间产生的任何人工制品放入源代码管理中 - 这包括.exe文件以及bindebugrelease下的任何内容。

还有其他文件应该是用户设置(例如.sua)。

您需要解决方案文件(.sln),项目文件/(.csproj),配置文件(.config)以及任何源文件,包括内容(例如图像,脚本以及未嵌入其中的可执行文件所需的任何其他内容。)

请参阅此相关的Stack Overflow问题:

.gitignore for Visual Studio Projects and Solutions

其中一个答案指向Visual Studio的this github gitignore文件。

答案 1 :(得分:1)

项目文件夹下的所有内容都不是项目的一部分。

查看Visual Studio,在解决方案资源管理器中,您可以看到实际属于项目的文件。但是,在该文件夹中,您有 bin obj 文件夹,其中包含临时文件和输出文件。您还可以找到任意数量的旧文件,遗骸,复制文件 - 所有这些文件都没有编译,也找不到最终产品。

某些语言或IDE会将文件夹内容视为项目的一部分。 Visual Studio在.CSPROJ文件中内部管理它。

因此,要回答您的问题,应该是源代码控制的一部分的文件是.cs文件,.csproj文件,.sln,.config和其他已编译的文件或项目内容的一部分 - 脚本,图像等等。一方面不丢失任何内容而不添加无关文件的最佳方法是使用Visual Studio源代码控制插件,并在VS中执行签入/签出操作。