Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Subversion和Visual Studio项目的最佳实践_C#_Visual Studio 2010_Svn_Svnignore - Fatal编程技术网

C# Subversion和Visual Studio项目的最佳实践

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

我最近开始在VisualStudio中从事各种C#项目,这是一个大型系统计划的一部分,该系统将用来取代我们目前的系统,该系统是由各种用C和Perl编写的程序和脚本拼凑而成的。我现在正在从事的项目已经达到了致力于颠覆的临界质量。我想知道哪些内容应该和不应该提交到VisualStudio项目的存储库中。我知道它将生成各种文件,这些文件只是构建工件,不需要提交,我想知道是否有人对在VisualStudio中正确使用SVN有任何建议。目前,我正在使用一台SVN1.6服务器和VisualStudio2010测试版。欢迎提供任何建议和意见。

解决方案级别:

  • 添加
    .sln
    解决方案文件
  • 忽略
    .suo
    解决方案用户选项文件
项目级:

    添加<代码> .CSPROJ< /COD>,<代码> .VBPROJ(和C++ PROJ)文件
  • 忽略
    .csproj.user
    .vbproj.user
    文件
  • 忽略
    bin
    目录
  • 忽略
    obj
    目录
  • 忽略运行时生成的任何文件/目录(即日志)
如果使用和VS加载项,它们可能会生成也需要忽略的文件(即ReSharper生成
.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(我认为是断点等用户项目设置)
另外,不要放入任何对象文件、可执行文件、自动生成的文件(如可能生成的头文件)

至于可执行文件和其他生成的文件,如果您希望能够归档版本,则可能会出现异常。这可能是一个好主意,但您可能希望以一种与源代码不同的方式管理它。如果这样做,还可以归档.pdb文件,以便以后调试这些文件。您可能希望使用符号服务器存储存档的符号(有关符号服务器及其文档,请参阅)

以下是我从SVN中排除的VS特定文件的列表:

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
    *.vbproj.webinfo
    ,用于控制Web项目的虚拟根位置
  • 生成输出文件,例如,
    *.dll
    *.exe
    文件

如果您使用的是忽略列表,则SVN区分大小写。因此,请记住分别忽略bin和bin文件夹


还有,我有个问题。。为什么刷新状态图标会花费很多时间?有时它会变得非常混乱。

有关Mercurial忽略列表,请参阅。我不熟悉SVN忽略列表的语法,但是这个线程有一些在Visual Studio中可以忽略的内容的好列表。

这是一个好列表。基本上,您需要编译项目所需的一组最少的文件。至少在某些情况下,提交
.user
,需要做一些准备。不添加的文件应添加到其中。使用Visual Studio 2015的文件还将希望从源代码管理中排除
.vs
文件夹。看,这是VS2010C。这与VS2010 C++有一些不同之处。我尝试了AnkhSVN,发现它倾向于过早地将IDE中的操作解释为源代码管理上的操作,并鼓励开发人员进行单文件提交。我更喜欢乌龟。但它知道什么是可以忽略的,这是很有用的!吹毛求疵:你说“不要放在。。。“可执行文件”,但在下一段中,您会说可能!