我最近开始在Visual Studio中开发各种C#项目,作为大规模系统的计划的一部分,该系统将用于替换我们当前的系统,这些系统是通过一起构建的用C和Perl编写的各种程序和脚本。我现在正在努力的项目已经达到了致力于颠覆的临界水平。我想知道什么应该和不应该提交给Visual Studio项目的存储库。我知道它会生成各种文件,这些文件只是构建工件,并不需要提交,我想知道是否有人对Visual Studio中正确使用SVN有任何建议。目前,我正在使用Visual Studio 2010测试版的SVN 1.6服务器。任何建议,意见,欢迎。Subversion和Visual Studio项目的最佳实践
回答
您可以将下列文件添加到Visual Studio源控制:
- 解决方案文件(
*.sln
)。- 项目文件,例如,
*.csproj
,*.vbproj
文件。- 基于XML的应用程序配置文件,用于控制Visual Studio项目的运行时行为。
文件,你不能添加到源代码控制包括以下内容:
- 解决方案用户选项文件(
*.suo
)。- 项目用户选项文件,例如,
*.csproj.user
,*.vbproj.user
文件。- Web信息文件,例如,
*.csproj.webinfo
,*.vbproj.webinfo
,控制Web项目的虚拟根位置。- 建立输出文件,例如,
*.dll
和*.exe
文件。
这是一个很好的清单。基本上你需要一小部分编译项目所需的文件。 – 2009-11-14 06:07:52
有一个[case](http://stackoverflow.com/a/72370/4847772)用于提交'.user',至少在某些情况下。那些不添加的文件应该添加到['svn:ignore'](http://svnbook.red-bean.com/en/1.8/svn.advanced.props.special.ignore.html)。 – PJTraill 2015-05-27 16:30:10
使用Visual Studio 2015的用户也希望从源代码控制中排除'.vs'文件夹。请参阅http://stackoverflow.com/q/31526899/2615878。 – Theophilus 2016-04-20 18:47:21
解决方案级别:
- 添加
.sln
解决方案文件 - 忽略
.suo
解决方案用户选项文件
项目级别:
- 添加
.csproj
,.vbproj
(和C++ proj?)文件 - 忽略
.csproj.user
,.vbproj.user
文件 - 忽略
bin
目录 - 忽略
obj
目录 - 忽略任何文件/文件在运行时(即获取生成目录。日志)
如果使用和VS加载项,他们可能会产生还需要忽略(即ReSharper的生成.resharper
和.resharper.user
文件)的文件。
忽略项目可以通过文件名(即MyProject.csproj
)或通配符模式(即*.csproj.user
)明确忽略。
一旦你有你忽略设置,检查出你的源,然后建立一个干净的副本,那么应该显示任何修改(即没有新版本的文件)。
我建议使用AnkhSVN - Visual Studio 2008/2010的Subversion源代码控制插件。
您可以使用它来执行解决方案,项目和源代码的初始添加和提交,并且不会添加任何构建工件。它不会添加由您的构建生成的任何内容,只包含您的解决方案引用的文件。如果您需要的任何其他零碎碎片都不在您的解决方案中,则可以在之后添加它们。
我会手动包括所有文件,我认为我不应该版本控制。
我的全局忽略模式是:
.dll文件的.pdb的.exe .cache .webinfo .SNK斌OBJ调试_Resharper。用户ReSharper的
把以下文件的版本控制:
- .DSW(VS6工作区)
- .DSP(VS6项目)
- 的.sln(VS解决方案)
- * PROJ (各类VS项目文件),当然
- 源文件和其他文物创建
做不把以下文件版本控制:
- .NCB
- 名为.suo(一些与浏览或intellsense做)(用户工作区的设置,如窗口位置,等等 - 我认为)
- 。用户(用户项目设置例如断点,等等 - 我认为)
另外,不要把任何对象文件,可执行文件,自动生成的文件(比如,可能会产生头)。
至于可执行文件和其他生成的文件 - 如果您想要归档版本,可能会有例外。这可能是一个好主意,但是您可能想要以不同的方式管理它,并且可能与源代码位于不同的位置。如果你这样做,还要存档你的.pdb文件,以便以后调试。您可能需要使用Symbol Server来存储归档符号(有关符号服务器及其文档,请参阅Debugging Tools for Windows)。
这里是我的VS-特定的文件列表,我从SVN排除:
Ankh.Load
*.projdata
*.pdb
*.positions
*proj.user
*proj.*.user
*.ncb
*.suo
*.plg
*.opt
*.ilk
*.pch
*.idb
*.clw
*.aps
Nit-picking:你说'不要放入...可执行文件',但是在下一段中,你可能会说! – PJTraill 2015-05-27 16:33:35
如果您使用忽略列表,SVN区分大小写。所以请记住分开忽略bin和Bin文件夹。
此外,我有一个问题..为什么刷新状态图标需要很多时间?有时它变得非常混乱。
请参阅Mercurial .hgignore for Visual Studio 2008 projects了解Mercurial忽略列表。我不熟悉SVN忽略列表的语法,但是这个线程有几个很好的在Visual Studio中忽略什么的列表。
- 1. 为nUnit测试设置Visual Studio项目的最佳实践
- 2. 在Visual Studio中设置“企业”项目的最佳实践?
- 3. Visual Studio本地项目设置最佳实践?
- 4. 最佳实践项目
- 5. Visual Studio 2008 + Sql 2008最佳实践
- 6. Visual Studio环境最佳实践?
- 7. C#,Visual Studio 2010,PowerPoint。最佳实践?
- 8. WCF最佳实践的参考项目
- 9. .NET项目中SQL的最佳实践
- 10. Django项目设置的最佳实践
- 11. 在Visual Studio 2008中使用sql server 2005数据库项目的最佳实践
- 12. 有没有Visual Studio项目/解决方案结构的最佳实践?
- 13. clojure + clojurescript项目结构最佳实践
- 14. Java Web项目结构最佳实践
- 15. TFS最佳实践项目层次
- 16. WatiN测试项目最佳实践
- 17. WPF开源项目最佳实践
- 18. 春季项目细分,最佳实践?
- 19. 最佳实践在库项目
- 20. CodeIgniter最佳实践项目列表
- 21. C项目组织最佳实践
- 22. Subversion和图像上传的最佳实践
- 23. 什么是Visual Source Safe检入和Visual Studio构建模式的最佳实践?
- 24. 最佳实践
- 25. 在Visual Studio中使用Git的最佳实践?
- 26. 最佳实践
- 27. 组织Visual Studio解决方案的最佳实践
- 28. Visual Studio解决方案的单元测试最佳实践
- 29. 最佳实践:
- 30. 最佳实践
这是VS2010 C#。例如,这与VS2010 C++有一些区别。给它标签C#。 – Bitterblue 2014-04-10 08:06:05