【问题标题】:How do you structure physical and logical/solution folders?您如何构建物理和逻辑/解决方案文件夹?
【发布时间】:2021-02-27 02:59:12
【问题描述】:

在对这个问题进行大量阅读和研究后,奇怪的是,项目以这种方式构建,但似乎没有直接的创建方式。

微软的 eShopOnContainers 项目就是一个很好的例子 - https://github.com/dotnet-architecture/eShopOnContainers

存储库有一个物理 src 文件夹,当您打开 eShopOnContainers-ServicesAndWebApps.sln 时 - 解决方案资源管理器将 src 显示为一个逻辑文件夹。

我发现 .sln 也存在于一个特殊的位置 - 直接在 src 文件夹中,几乎就像这个 .sln 是手动创建的,并根据需要添加了项目。

Services 文件夹及其内容也是如此,每个项目都以 Services/Identity/Identity.API 的形式存在 - 这个完整的结构显示在文件资源管理器和解决方案资源管理器中,但是当我尝试重新创建它时,我可以 1 2 个场景 -

  1. 我将文件夹结构创建为物理文件夹,但它们不会显示在解决方案资源管理器中。
  2. 我将文件夹结构创建为逻辑/解决方案文件夹,它们不会显示在文件资源管理器中。

这似乎无法通过投影创建 GUI,我想这是通过 dotnet CLI 创建项目和结构来完成的,但我似乎无法弄清楚,这是如何完成的?

【问题讨论】:

    标签: asp.net .net visual-studio


    【解决方案1】:

    通过 Visual Studio GUI 解决这个问题 -

    在 Visual Studio 中创建您认为合适的逻辑文件夹结构,然后让您的物理文件夹匹配该结构 - 甚至与其不同 - 创建路径以及您正在创建的项目,文件系统将创建从指定路径的物理文件夹,您将达到预期的效果。

    例子:

    创建 C:\myproject\src\

    Visual Studio -> 文件 -> 新建 -> 项目 -> 空白解决方案(名称:myprojectsolution)

    右键myprojectsolution -> 添加 -> 新建解决方案文件夹(名称:src)

    我的 myprojectsolution.sln 到 C:\myproject\src\ 然后删除使用 .sln 文件创建的 myprojectsolution 文件夹。

    Logical 和 Physical 文件夹现在匹配,.sln 直接存在于 src 中,src 将显示在解决方案资源管理器中。

    此时,假设您要在 Microservices\Identity\Identity.IDP 创建一个 Identity.IDP 项目,具有匹配的逻辑和物理结构。

    Visual Studio -> 右键src -> 添加 -> 新建解决方案文件夹(名称:微服务)

    Visual Studio -> 右键微服务 -> 添加 -> 新建解决方案文件夹(名称:Identity)

    Visual Studio -> 右键Identity -> Add -> New Project(名称:Identity.IDP,位置:C:\myproject\src\Microservices\Identity)

    以上将导致解决方案资源管理器和文件资源管理器中存在匹配的文件夹结构。

    总之 - 通过 Visual Studio GUI 创建您的解决方案结构,通过在创建项目时指定路径来创建您的物理结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      相关资源
      最近更新 更多