你如何设置.NET开发树?

时间:2008-09-16 12:12:34

标签: c# .net development-environment

如何设置.NET开发树?我使用这样的结构:

-projectname
--config (where I put the configuration files)
--doc    (where I put all the document concerning the project: e-mails, documentation)
--tools  (all the tools I use: Nunit, Moq)
--lib    (all the libraries used by the solution: ninject or autofac)
--src
---app   (sourcefiles)
---test  (unittests)
solutionfile.sln
build.csproj

符号“ - ”标记目录。

我认为在这个问题上建立一个好的结构是非常重要的。您应该能够从源代码控制系统获取源代码,然后在不打开Visual Studio或安装任何第三方库的情况下构建解决方案。

对此有何想法?

8 个答案:

答案 0 :(得分:8)

我们使用JP Boodhoo博客文章Directory Structure For Projects中介绍的非常相似的布局。

答案 1 :(得分:5)

答案 2 :(得分:2)

TreeSurgeon是一个为您设置目录树的工具,包含所有必需的依赖项和一个骨架nant文件。在该链接中,您还可以找到其原始创建者Mike Roberts发布的一系列博客文章,解释TreeSurgeon为您提供的结构背后的一些有意选择,例如:为什么在lib和工具之间进行重复是可以的,为什么让所有依赖项都存在等很重要。

我有一段时间没有使用它,所以不记得我是否仍然同意它所做出的所有选择,但我认为你不会错误地使用它。

答案 3 :(得分:1)

我们使用这样的结构:

       
  • CompanyNameOrCoreProjectName       
               
    • 科             
                       
      • BRANCHNAME                   
                               
        • CopyOfTrunk
        •                   
                       
      •             
               
    •          
    • 中继线             
                       
      • 桌面
      •                
      • ReferencedAssemblies
      •                
      • 共享
      •                
      • 解决方案
      •                
      • 测试
      •                
      • 腹板
      •             
               
    •       
       

然后确保所有项目/解决方案文件仅使用相对路径,并且分支工作正常。桌面/ Web适用于各种类型的项目,Test适用于任何单元测试项目,Solutions文件夹具有每个解决方案的文件夹,其中只包含解决方案文件。 ReferencedAsmblies包含我们未在解决方案中包含的所有程序集(这些程序有时是我们不想在每次构建解决方案时构建的本地项目或者像rhinomocks或log4net等第三方程序集等。共享用于任何在多个解决方案中使用的核心库(数据访问,业务逻辑等)。

答案 4 :(得分:0)

在我的工作地点,我们有多个项目,每个项目都有自己的子目录,如下所示:  -proj1
--proj1.csproj
-proj2
--proj2.csproj
-proj3
--proj3.csproj
solutionfile.sln

您的其他设置看起来没问题,但我认为您应该弄清楚如何合并多个项目,例如多个解决方案之间的共享源库。

答案 5 :(得分:0)

如果我正确理解你的结构,我认为你的开发树中会有很多与“tools”和“lib”相关的重复项。很可能这些是可能由不同项目共享的外部工具和库。

对我们有用的东西是:
solutionfile.sln
-src
--projectname
---config
---doc
---source files (structure representing namespaces)
-test
--testprojectname (usually, a test project per source project)
---unit test files (structure mirroing the structure in the source project)
-lib
--libraryname (containing the libraries)
-tools

答案 6 :(得分:0)

我在项目中没有工具。工具位于网络共享中。是的磁盘空间这些天很便宜但是......来吧:)。

此外,我在projectname下面有一个数据库脚本文件夹(当它是一个数据驱动的应用程序时)

当然,你如何设置并不重要,但是使用逻辑有组织的标准来适应项目并遵守良好的纪律。无论您是单人还是团队,这都很有用。

答案 7 :(得分:0)

我们也使用TreeSurgeon并对此非常满意。我们的结构如下:

  • 构建
  • LIB
  • SRC
    • < 用于应用程序,测试,数据库迁移等的各种src目录。)
  • 工具

中继线

  • 与上述相同