我最近开始在Visual Studio中开发各种C#项目,作为大规模系统计划的一部分,该系统将用于替换我们当前的系统,该系统是用C语言编写的各种程序和脚本拼凑而成的。和Perl。我正在进行的项目已经达到了致力于颠覆的临界质量。我想知道什么应该和不应该提交到Visual Studio项目的存储库。我知道它会生成各种文件,这些文件只是构建工件,并不需要提交,我想知道是否有人有任何关于在Visual Studio中正确使用SVN的建议。目前,我正在使用带有Visual Studio 2010 beta的SVN 1.6服务器。欢迎任何建议,意见。
答案 0 :(得分:89)
您可以将以下文件添加到Visual Studio源代码管理中:
- 解决方案文件(
*.sln
)。- 项目文件,例如
*.csproj
,*.vbproj
个文件。- 基于XML的应用程序配置文件,用于控制Visual Studio项目的运行时行为。
无法添加到源代码管理的文件包括以下内容:
- 解决方案用户选项文件(
*.suo
)。- 项目用户选项文件,例如
*.csproj.user
,*.vbproj.user
个文件。- 控制Web项目虚拟根位置的Web信息文件,例如
*.csproj.webinfo
,*.vbproj.webinfo
。- 构建输出文件,例如
*.dll
和*.exe
个文件。
答案 1 :(得分:16)
我建议使用AnkhSVN - Visual Studio 2008/2010的Subversion源代码控制插件。
您可以使用它来执行初始添加和提交解决方案,项目和源到存储库,它不会添加任何构建工件。它不会添加由构建生成的任何内容,只会添加解决方案引用的文件。如果您需要的其他任何零碎都不在您的解决方案中,您可以在之后添加它们。
答案 2 :(得分:15)
将以下文件放在版本控制中:
不将以下文件放入版本控制中:
另外,请勿放入任何目标文件,可执行文件,自动生成的文件(如可能生成的标题)。
对于可执行文件和其他生成的文件 - 如果您希望能够存档版本,则可能会出现异常。这可能是一个好主意,但您可能希望以不同的方式管理它,并且可能在与源代码不同的地方。如果这样做,还要归档.pdb文件,以便稍后调试。您可能希望使用符号服务器存储已存档的符号(有关符号服务器及其文档,请参阅Debugging Tools for Windows)。
这是我从SVN中排除的VS特定文件列表:
Ankh.Load
*.projdata
*.pdb
*.positions
*proj.user
*proj.*.user
*.ncb
*.suo
*.plg
*.opt
*.ilk
*.pch
*.idb
*.clw
*.aps
答案 3 :(得分:11)
解决方案级别:
.sln
解决方案文件.suo
解决方案用户选项文件项目级别:
.csproj
,.vbproj
(和c ++ proj?)文件.csproj.user
,.vbproj.user
个文件bin
目录obj
目录如果使用和VS插件,他们可能会生成也需要忽略的文件(即ReSharper生成.resharper
和.resharper.user
个文件。)
可以通过文件名(即MyProject.csproj
)或通配符模式(即*.csproj.user
)显式忽略忽略项。
一旦你设置了你的忽略,检查你的源的干净副本然后建立应该没有显示任何修改(即没有新的无版本文件)。
答案 4 :(得分:5)
我会手动包含我认为不应该版本控制的所有文件。
我的全局忽略模式是:
.dll .pdb .exe .cache .webinfo .snk bin obj debug _Resharper .user resharper
答案 5 :(得分:2)
如果您使用忽略列表,SVN区分大小写。所以请记住单独忽略bin和Bin文件夹。
另外,我有一个问题..为什么刷新状态图标需要花费很多时间?有时它会变得非常混乱。
答案 6 :(得分:1)
有关Mercurial忽略列表,请参阅Mercurial .hgignore for Visual Studio 2008 projects。我不熟悉SVN忽略列表的语法,但是这个帖子有一些很好的列表,列出了Visual Studio中要忽略的内容。