C# Subversion和Visual Studio项目的最佳实践
我最近开始在VisualStudio中从事各种C#项目,这是一个大型系统计划的一部分,该系统将用来取代我们目前的系统,该系统是由各种用C和Perl编写的程序和脚本拼凑而成的。我现在正在从事的项目已经达到了致力于颠覆的临界质量。我想知道哪些内容应该和不应该提交到VisualStudio项目的存储库中。我知道它将生成各种文件,这些文件只是构建工件,不需要提交,我想知道是否有人对在VisualStudio中正确使用SVN有任何建议。目前,我正在使用一台SVN1.6服务器和VisualStudio2010测试版。欢迎提供任何建议和意见。解决方案级别:C# Subversion和Visual Studio项目的最佳实践,c#,visual-studio-2010,svn,svnignore,C#,Visual Studio 2010,Svn,Svnignore,我最近开始在VisualStudio中从事各种C#项目,这是一个大型系统计划的一部分,该系统将用来取代我们目前的系统,该系统是由各种用C和Perl编写的程序和脚本拼凑而成的。我现在正在从事的项目已经达到了致力于颠覆的临界质量。我想知道哪些内容应该和不应该提交到VisualStudio项目的存储库中。我知道它将生成各种文件,这些文件只是构建工件,不需要提交,我想知道是否有人对在VisualStudio中正确使用SVN有任何建议。目前,我正在使用一台SVN1.6服务器和VisualStudio201
- 添加
解决方案文件.sln
- 忽略
解决方案用户选项文件.suo
- 忽略
,.csproj.user
文件.vbproj.user
- 忽略
目录bin
- 忽略
目录obj
- 忽略运行时生成的任何文件/目录(即日志)
.ReSharper
和.ReSharper.user
文件)
可以通过文件名(即MyProject.csproj
)或通配符模式(即*.csproj.user
)显式忽略忽略忽略项
一旦设置了忽略,请签出源代码的干净副本,然后构建应该不会显示任何修改(即没有新的未版本文件)。我建议使用-a Subversion源代码管理插件for Visual Studio 2008/2010
您可以使用它向存储库执行解决方案、项目和源的初始添加和提交,而不会添加任何构建人工制品。它不会添加生成的任何内容,只添加解决方案引用的文件。如果解决方案中没有您需要的任何其他比特和片段,您可以在以后添加它们。我会手动包含所有我认为不应该进行版本控制的文件 我的全局忽略模式是:
.dll.pdb.exe.cache.webinfo.snk bin obj debug\u Resharper.user Resharper将以下文件置于版本控制中:
- .dsw(VS6工作区)
- .dsp(VS6项目)
- .sln(VS解决方案)
- .*proj(VS各种类型的项目文件)
- 当然,还有您创建的源文件和其他工件
- .ncb(与浏览或智能感知有关)
- .suo(用户工作区设置,如窗口位置等-我认为)
- .user(我认为是断点等用户项目设置)
Ankh.Load
*.projdata
*.pdb
*.positions
*proj.user
*proj.*.user
*.ncb
*.suo
*.plg
*.opt
*.ilk
*.pch
*.idb
*.clw
*.aps
:
可以将以下文件添加到Visual Studio源代码管理:
- 解决方案文件(
)*.sln
- 项目文件,例如,
,*.csproj
文件*.vbproj
- 基于XML的应用程序配置文件,用于控制Visual Studio项目的运行时行为李>
- 解决方案用户选项文件(
)*.suo
- 项目用户选项文件,例如,
,*.csproj.user
文件*.vbproj.user
- Web信息文件,例如,
,*.csproj.webinfo
,用于控制Web项目的虚拟根位置*.vbproj.webinfo
- 生成输出文件,例如,
和*.dll
文件*.exe
如果您使用的是忽略列表,则SVN区分大小写。因此,请记住分别忽略bin和bin文件夹
还有,我有个问题。。为什么刷新状态图标会花费很多时间?有时它会变得非常混乱。有关Mercurial忽略列表,请参阅。我不熟悉SVN忽略列表的语法,但是这个线程有一些在Visual Studio中可以忽略的内容的好列表。这是一个好列表。基本上,您需要编译项目所需的一组最少的文件。至少在某些情况下,提交
.user
,需要做一些准备。不添加的文件应添加到其中。使用Visual Studio 2015的文件还将希望从源代码管理中排除.vs
文件夹。看,这是VS2010C。这与VS2010 C++有一些不同之处。我尝试了AnkhSVN,发现它倾向于过早地将IDE中的操作解释为源代码管理上的操作,并鼓励开发人员进行单文件提交。我更喜欢乌龟。但它知道什么是可以忽略的,这是很有用的!吹毛求疵:你说“不要放在。。。“可执行文件”,但在下一段中,您会说可能!