我最近开始在各种C#项目的工作在Visual Studio中作为将被用于替换这与C语言编写,Perl的各种程序和脚本的补鞋,一起建立了我们目前的系统大规模系统计划的一部分.我正在进行的项目已经达到了致力于颠覆的临界质量.我想知道什么应该和不应该提交到Visual Studio项目的存储库.我知道,这将产生那些刚刚建立的工件和并不真正需要提交的各种文件,我想知道是否有人有对正确使用SVN使用Visual Studio的任何建议.目前,我正在使用带有Visual Studio 2010 beta的SVN 1.6服务器.欢迎任何建议,意见.
根据MSDN:
您可以将以下文件添加到Visual Studio源代码管理:
解决方案文件(
*.sln
).项目文件,例如
*.csproj
,*.vbproj
文件.基于XML的应用程序配置文件,用于控制Visual Studio项目的运行时行为.
无法添加到源代码管理的文件包括以下内容:
解决方案用户选项文件(
*.suo
).项目用户选择的文件,例如
*.csproj.user
,*.vbproj.user
文件.网络信息的文件,例如
*.csproj.webinfo
,*.vbproj.webinfo
中,控制Web项目的虚拟根位置.例如,构建输出文件
*.dll
和*.exe
文件.
我建议使用AnkhSVN - Visual Studio 2008/2010的Subversion源代码控制插件.
您可以使用它来执行初始添加和提交解决方案,项目和源到存储库,它不会添加任何构建工件.它不会添加由构建生成的任何内容,只会添加解决方案引用的文件.如果您需要的任何其他零碎都不在您的解决方案中,您可以在之后添加它们.
将以下文件放在版本控制中:
.dsw(VS6工作空间)
.dsp(VS6项目)
.sln(VS解决方案)
.*proj(各种类型的VS项目文件)
当然是您创建的源文件和其他工件
不要不把下面的文件版本控制:
.ncb(与浏览或intellsense有关)
.suo(用户工作区设置,如窗口放置等 - 我认为)
.user(用户项目设置,如断点等 - 我认为)
此外,不要放入任何目标文件,可执行文件,自动生成的文件(如可能生成的标头).
至于可执行文件和其他生成的文件 - 如果您希望能够存档版本,则可能会有异常.这可能是一个好主意,但您可能希望以不同的方式管理它,并且可能在与源代码不同的地方.如果这样做,还要归档.pdb文件,以便稍后调试.您可能希望使用符号服务器来存储已存档的符号(请参阅符号服务器及其文档的Windows调试工具).
这是我从SVN中排除的VS特定文件列表:
Ankh.Load *.projdata *.pdb *.positions *proj.user *proj.*.user *.ncb *.suo *.plg *.opt *.ilk *.pch *.idb *.clw *.aps
解决方案级别
添加.sln
解决方案文件
忽略.suo
解决方案用户选项文件
项目级别:
添加.csproj
,.vbproj
(和c ++ proj?)文件
忽略.csproj.user
,.vbproj.user
文件
忽略bin
目录
忽略obj
目录
忽略在运行时生成的任何文件/目录(即日志)
如果您使用和VS插件,他们可能会生成也需要忽略的文件(即ReSharper生成.resharper
和.resharper.user
文件).
忽略项可以通过文件名(即.MyProject.csproj
)显式忽略,也可以通过通配符模式(即.*.csproj.user
)忽略.
一旦你设置了你的忽略,检查你的源的干净副本然后建立应该没有显示任何修改(即没有新的无版本文件).
我会手动包含我认为不应该版本控制的所有文件.
我的全局忽略模式是:
.dll .pdb .exe .cache .webinfo .snk bin obj debug _Resharper .user resharper