【问题标题】:How should I structure my VSTS project folders?我应该如何构建我的 VSTS 项目文件夹?
【发布时间】:2018-09-27 04:46:02
【问题描述】:

我正在尝试了解我应该如何构建我的 TFS/VSTS 文件夹和本地工作区/文件夹/映射等。我正在寻找一种可以遵循的最佳实践方法。

目前我的 VSTS 帐户中有两个项目:

$/ProjectA
+- Main
  +- ProjectA 
    +- ProjectA
    +- ProjectA.sln 

$/ProjectB
+- Main
  +- ProjectB 
  +- ProjectB.sln 

正如MSDN link 所建议的那样,我在项目的根目录下创建了一个“主”文件夹。所以我可以创建分支以防以后需要。

请注意,在使用新项目向导并选中“添加到源代码管理”时,ProjectA 有一个名为 ProjectA 的附加文件夹,它是由 Visual Studio 创建的。

关于 ProjectB:首先我创建了解决方案,但没有将其添加到源代码管理中。但后来将解决方案移动到本地映射的文件夹中。然后打开解决方案并选择“将解决方案添加到源代码管理”。

我有一个工作区,名为:“MyWorkspace”。该工作空间内的路径映射设置如下:

$/ProjectA ==> C:\Dev\Projects\ProjectA  
$/ProjectB ==> C:\Dev\Projects\ProjectB

注意:这两个项目彼此无关。

问题:

  1. 我应该如何在 VSTS 项目中构建我的文件夹? .sln 文件应位于哪个级别?

  2. 我应该如何构建我的本地文件夹和映射?

  3. 我应该使用一个包含所有项目映射的工作区还是每个项目一个工作区?或者我什至应该按照一些博客的建议每个项目有多个工作区? (抱歉找不到链接了)

【问题讨论】:

  • 这完全取决于您。我在这里看到了许多不同的方法。有些使用单个 .sln 文件,有些使用多个(每个仅加载本地相关项目)。有些人将 .sln 文件放在顶层,其他人根据用途(前端、后端、库)将它们细分到文件夹中。这个问题完全是主观的。

标签: c# visual-studio tfs version-control azure-devops


【解决方案1】:

我同意 Flater,这个问题完全是主观的。

但是 MSDN 提供了关于使用 服务器端结构客户端结构 以及 分支文件夹工作区的建议解释。

解决方案和项目结构的策略

用于构建解决方案和解决方案的三种最常用策略 项目文件是:

  • 单一解决方案。如果您在一个小型系统上工作,请创建一个解决方案并将您的所有项目放入其中。
  • 分区解决方案。如果您在大型系统上工作,请使用多个解决方案将相关项目组合在一起。创建解决方案
    对开发人员最喜欢的项目子集进行逻辑分组
    可能会作为一组进行修改,然后创建一个主解决方案
    包含您的所有项目。这种方法减少了
    仅在需要时需要从源代码管理中提取的数据
    从事特定项目。
  • 多种解决方案。如果您正在处理需要数十个或更多项目的非常大的系统,请使用多种解决方案来工作
    在子系统上,但出于依赖映射和性能原因,这样做
    不要创建包含所有项目的主解决方案。

一般来说你应该:

  • 使用单一解决方案策略,除非生成的解决方案太大而无法加载到 Visual Studio。
  • 使用多种解决方案在应用程序的子系统上创建特定视图。
  • 使用多个解决方案来减少加载解决方案所需的时间并减少开发人员的构建时间。

详情请参考以下链接:


在某些情况下,您可以创建多个工作区来隔离和切换您在不同分支中所做的更改

如果您使用的是本地工作区,则可以通过切换到使用“one branch == one workspace”来获得一些性能优势。详情请参考phkelley的博客:

TFS Version ControlUsing multiple workspaces with Visual Studio

您也可以参考 jessehouwing 关于如何使用工作区的回答:https://stackoverflow.com/a/48355207/7466674

【讨论】:

    猜你喜欢
    • 2020-02-03
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多