我最近开始在各种C#项目的工作在Visual Studio中作为将被用于替换这与C语言编写,Perl的各种程序和脚本的补鞋,一起建立了我们目前的系统大规模系统计划的一部分。 我现在工作的项目已经达到临界质量的承诺来颠覆。 我想知道什么应该和不应该被提交到存储库的Visual Studio项目。 我知道,这将产生那些刚刚建立的工件和并不真正需要提交的各种文件,我想知道是否有人有对正确使用SVN使用Visual Studio的任何建议。 目前,我使用的是SVN 1.6服务器与Visual Studio 2010测试版。 任何建议,意见都欢迎。
Answer 1:
根据MSDN :
您可以添加下列文件到Visual Studio源控制:
- 解决方案文件(
*.sln
)。- 项目文件,例如,
*.csproj
,*.vbproj
文件。- 应用程序配置文件,基于XML的,用来控制一个Visual Studio项目的运行时行为。
你不能添加到源代码控制文件包括以下内容:
- 解决方案用户选项文件(
*.suo
)。- 项目用户选择文件,例如,
*.csproj.user
,*.vbproj.user
文件。- 网络信息的文件,例如
*.csproj.webinfo
,*.vbproj.webinfo
,控制Web项目的虚拟根位置。- 构建输出文件,例如,
*.dll
和*.exe
文件。
Answer 2:
我会建议使用AnkhSVN的 -为Visual Studio 2008/2010 Subversion的源代码控制插件。
你可以用它来执行你的初始加载和解决方案,项目和源库的承诺,它不会添加任何构建文物。 它不会添加由您的构建,仅由您的解决方案引用的文件生成的任何东西。 如果有你需要的不是解决方案中的任何其他零零碎碎的,你可以在后面加上它们。
Answer 3:
放入版本控制的以下文件:
- .DSW(VS6工作区)
- .DSP(VS6项目)
- 的.sln(VS溶液)
- * PROJ(各类VS项目文件)
- 当然你的源文件和其他文物创建
不要把以下文件版本控制:
- .NCB(东西与浏览或intellsense办)
- 名为.suo(用户工作区的设置,如窗口位置,等等 - 我认为)
- 。用户(用户项目设置例如断点,等等 - 我认为)
另外,不要把任何对象文件,可执行文件,自动生成的文件(比如,可能会产生头)。
至于可执行文件和其他生成的文件 - 如果你希望能够存档版本有可能是一个例外。 这可能是一个好主意,但你可能会想以不同的方式和可能管理该有点不同的地方比你的源代码。 如果你这样做,也归档你的.pdb文件以便以后可以调试的东西。 你可能想使用一个符号服务器您存储存档符号(请参阅Windows调试工具的符号服务器和它的文档)。
这里是我的,我从SVN排除VS特定的文件列表:
Ankh.Load
*.projdata
*.pdb
*.positions
*proj.user
*proj.*.user
*.ncb
*.suo
*.plg
*.opt
*.ilk
*.pch
*.idb
*.clw
*.aps
Answer 4:
解决方案级别:
- 添加
.sln
解决方案文件 - 忽略
.suo
解决方案用户选项文件
项目级别:
- 添加
.csproj
,.vbproj
(和C ++凸出?)文件 - 忽略
.csproj.user
,.vbproj.user
文件 - 忽略
bin
目录 - 忽略
obj
目录 - 忽略任何文件/文件在运行时获取生成目录(即原木)
如果你使用和VS加载项,他们可能会产生还需要忽略(即ReSharper的生成文件.resharper
和.resharper.user
文件)。
忽略项目既可以通过文件名(即明确忽略MyProject.csproj
),或通配符模式(即*.csproj.user
)。
一旦你有你忽略设置,检查出你的源的全新副本,然后再建设应该显示任何修改(即没有新版本的文件)。
Answer 5:
我将手动包括我觉得我不应该版本控制的所有文件。
我的全局忽略模式是:
.dll文件的.pdb的.exe .cache .webinfo .SNK斌OBJ调试_Resharper。用户ReSharper的
Answer 6:
在您使用忽略列表的情况下,SVN是区分大小写的。 所以请记住忽略bin和宾分开的文件夹。
另外,我有一个问题..为什么要花大量的时间有时刷新状态图标? 有时,它变得非常混乱。
Answer 7:
见水银.hgignore为Visual Studio 2008吨的项目的水银忽略列表。 我不熟悉SVN的语法忽略列表,但是这个线程拥有的在Visual Studio什么忽略一些好的名单。