15

您如何设置您的 .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 或安装任何第三方库。

对此有什么想法吗?

4

8 回答 8

8

我们使用的布局与 JP Boodhoo 的题为“项目目录结构”的博文中介绍的非常相似。

于 2008-09-16T12:23:54.383 回答
5

查看这些其他 StackOverflow 问题...

于 2008-09-16T12:23:51.340 回答
2

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

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

于 2008-09-16T12:58:52.707 回答
1

我们使用这样的结构:

  • 公司名称或核心项目名称
    • 分支
      • 分店名称
        • CopyOfTrunk
    • 树干
      • 桌面
      • 引用的程序集
      • 共享
      • 解决方案
      • 测试
      • 网站

然后只需确保所有项目/解决方案文件仅使用相对路径并且分支运行良好。Desktop/Webs 用于各自类型的项目,Test 用于任何单元测试项目,Solutions 文件夹为每个解决方案都有一个文件夹,其中只有解决方案文件。ReferencedAssemblies 包含我们未包含在解决方案中的所有程序集(这些有时是我们每次构建解决方案时不想构建的本地项目或第三方程序集,如 rhinomocks 或 log4net 等。共享用于跨多个解决方案使用的任何核心库(数据访问、业务逻辑等)。

于 2008-09-16T12:39:17.183 回答
0

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

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

于 2008-09-16T12:25:42.273 回答
0

如果我正确理解您的结构,我认为您的开发树中将有许多与“工具”和“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

于 2008-09-16T12:32:42.503 回答
0

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

我在项目名称下面还有一个数据库脚本文件夹(当它是数据驱动的应用程序时)

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

于 2008-09-16T12:33:05.547 回答
0

我们也使用 TreeSurgeon 并且对它非常满意。我们的结构看起来像:

分支

  • 建造
  • 源代码
    • < 用于应用程序、测试、数据库迁移等的各种 src 目录)
  • 工具

树干

  • 和上面一样
于 2008-09-16T13:17:30.883 回答