繁体   English   中英

在SVN仓库中存储Visual C#项目的约定

[英]Conventions for storing Visual C# projects in an SVN repo

基本上我的问题是你在存储库中存储了C#的哪些部分? 在去年的一个课程中,我被告知你永远不会将生成的文件存储在版本控制中(所以如果你正在写c,不要存储.o / .exe文件)。

但是使用c很容易,因为你只需要保存.c,.h和makefile,你可以只检查repo,运行make文件,一切正常。

但是在Visual Studio中的C#项目中,我在确定要存储的内容时遇到了一些问题。

如果我只存储.cs文件,将它们添加到其他计算机上的项目是很尴尬的。 我也应该存储项目文件吗?

我遇到的问题是我以前只存储整个项目目录。 但是当我将项目放在另一台计算机上时,它会抱怨temporaryKey错误(.pfx文件)......

那么我应该存储什么?

谢谢。

我这样做 - 我存储的一切除了:

  • 解决方案中每个项目的binobj目录
  • .user.suo文件 - 它们包含特定于用户的项目和解决方案选项
  • Resharper生成的文件(Resharper是Visual Studio扩展,在解决方案文件夹中创建一些文件)

基本上,经验法则不是存储特定于特定机器的任何东西,或者是由工具生成的任何东西(无论是编译器还是Visual Studio扩展 - 就像我的案例中的Resharper)。

这个建议不太适合大多数C#项目的工作方式,特别是UI - Visual Studio生成设计器文件,例如,哪个应该检入(否则,其他获取源将无法编译) 。

通常,不要存储作为编译工件的项目 - 由代码生成的程序集。

不应检查编译和运行不需要的项目(例如用户特定的设置文件)。

我同意其他所有人的观点 - 忽略binarys,.suo和.user - 但是我确实发现使用AnkhSVN可以直接从VS中提取它并且它可以正常工作。

我存储整个解决方案文件夹,但我为* .user,* .suo文件添加了例外。 我也没有提交任何bin和obj文件夹。

我们将所有内容存储在解决方案文件夹及其子文件夹中。 但我们通过添加这些排除

`svn:ignore` = 
*.suo
*.ncb
*.user
_ReSharper.*
[Bb]in
[Oo]bj
[Dd]ebug
[Rr]elease

供参考
SVN:忽略
TortoiseSVN的

其他人似乎已经覆盖了大部分,但我想我会加上我的两分钱。 我使用以下全局忽略模式进行C#开发。 这包括系统文件和不需要的解决方案文件。

* .o * .lo * .la * .al .libs * .so .so。[0-9] * .a * .pyc * .pyo .rej。 ~~ ###*。*。SWP .DS_Store的Thumbs.db的Thumbs.db名为* .bak的* .class * .dll文件的* .exe * .mine * .OBJ * .NCB * .lib *会* .LOG * .idb .pdb * .ilk * .msi * .res * .pch * .suo * .exp ~~ cvs CVS .CVS .cvs release release debug Debug ignore Ignore obj Obj * .csproj.user * .user bin BIN

有关svn的全局与本地忽略模式的更多信息,请查看此处:

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-ignore.html

一般经验法则

切勿存储任何生成的输出或用户特定设置。 此外,如果可能,请避免存储不必要的二进制文件,因为它们无法使用上下文合并。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM