Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用源代码管理时,实际应该提交哪些文件?_C#_Svn - Fatal编程技术网

C# 使用源代码管理时,实际应该提交哪些文件?

C# 使用源代码管理时,实际应该提交哪些文件?,c#,svn,C#,Svn,我正在做一个小项目,托管在Google代码上,使用SVN进行源代码控制。这是我第一次使用源代码管理,我对应该向存储库提交什么感到有点困惑。我的项目非常简单:一个用C#编写的类库项目。我编写的实际代码是一个文件 我的问题是:我应该提交整个项目(包括Debug、Release、Properties等目录)还是只提交主.cs文件 在与Subversion进行了一段时间的斗争之后(注意:donotreset repository),看起来我终于让它正确地处理了目录布局。除了输出文件之外,您应该提交所有

我正在做一个小项目,托管在Google代码上,使用SVN进行源代码控制。这是我第一次使用源代码管理,我对应该向存储库提交什么感到有点困惑。我的项目非常简单:一个用C#编写的类库项目。我编写的实际代码是一个文件

我的问题是:我应该提交整个项目(包括Debug、Release、Properties等目录)还是只提交主.cs文件



在与Subversion进行了一段时间的斗争之后(注意:donotreset repository),看起来我终于让它正确地处理了目录布局。

除了输出文件之外,您应该提交所有内容


这意味着提交除
\bin
\obj
目录(以及其中的文件)之外的所有内容。

您肯定不想提交构建的库,不。源代码管理实际上只针对源代码。现在,在类似.NET项目设置的某些情况下,您也可以将项目文件和解决方案文件视为源代码,这很好。(但不包括.user或.suo文件,不包括它们。)但共享编译后的二进制文件的团队将遇到麻烦。一般来说,二进制文件很好,例如引用的DLL。只是不是代码的预期构建二进制文件


基本上,提交您需要的所有内容(并且仅提交您需要的内容,至少在项目的代码层次结构范围内),以构建项目的完整版本。但不要提交实际生成的输出。

对于普通开发,我不提交:

  • 垃圾箱
  • obj
  • *.用户
  • *索先生

我承诺的一切。对于将要发送给客户的版本,我还提交了我发送的确切二进制文件。

您应该包括构建项目所需的所有内容,而不是项目生成的任何内容,因为有人重新编译它,就可以通过编译生成这些内容

对于作为解决方案文件(.sln)、项目文件(.csproj)、源文件(.cs)和任何资源文件(.resx、*.bmp、*.png等的C#项目。这确实包括“属性”文件夹中的文件,因为这些文件包含项目的全局设置

您在调试/发布中没有提交任何内容,这些都是构建项目的输出。根据经验,您不提交二进制文件(*.dll,*.exe)


作为一项测试,如果您已经提交了足够的内容,请将源文件签出到计算机上的其他目录,并尝试重新生成项目。

我提交了除以下内容以外的所有内容:

  • \bin目录
  • \obj目录
  • .suo和.user文件

有关最后一位的详细信息,请参阅

执行提交:

  • 源文件和文件夹

  • 资源(XML、CSS、ini文件…)

  • 未生成的二进制文件(图像、, 图标、声音……)

不提交:

  • 编译文件(exe、dll、jar)

  • 生成的源文件

  • 机器配置特定文件, i、 e.包含say文件路径的文件 到计算机上的某个本地文件 这可能是完全不同的 放在我的电脑上


如果我用
src
文件夹设置我的
trunk
,所有这些都应该放在那里吗?是的,应该放在那里。最好的做法是查看一些开源C#项目,看看它们是如何构建项目的,以及它们签入了哪些文件。当有疑问的时候,最好模仿你尊敬的人。那么.suo和.user呢?这些在源代码中是没有用的control@ScottS:没错。还有很多其他文件你也不应该签入。“提交除输出文件以外的所有内容”是准确的。@ScottS-True,还有一些其他文件不应该提交。
只是不是代码的预期构建二进制文件。
:这些文件应该放在
主干/build
?@SimpleCoder:在
/build/
这样的文件夹中,我直觉上希望找到用于构建(甚至可能是部署)项目的脚本,比如NAnt或Rake文件(它们本身就是来源)。可能还有其他一些构建支持功能。但是,一般来说,源代码管理层次结构不应该在任何地方有其项目的构建输出。开发人员从源代码管理中获得的是构建项目所需的内容,而不是构建的输出。调试和发布中包含输出文件,而不是源文件,因此不应该提交这些文件。Properties目录中包含源代码(AssemblyInfo.cs)。如果你按照Andrew的答案做,你会没事的。我只是想明确地说出这些,因为你提到了它们。好吧,实际上……这是我过去做过的一个技巧。我只将我认为肯定需要的文件复制到另一个目录。从你的csproj和sln文件开始,以及你在解决方案资源管理器中看到的文件(确保一直向下钻取)。然后在VS中打开该解决方案的副本。如果它生成正确(没有错误,并且所有输出文件都相同),则这些是您需要的文件。确保a)写下您复制的文件,或b)制作两个副本,一个用于测试干净的生成,另一个不接触,并最终检查indeplicate of long-standing:Related:+1的“作为测试,如果您已经提交了足够的内容,请将源代码签出到计算机上的其他目录,并尝试重建项目”