Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.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# 解决方案回购结构-VS Azure功能_C#_Azure Devops_Architecture_Azure Functions_Projects And Solutions - Fatal编程技术网

C# 解决方案回购结构-VS Azure功能

C# 解决方案回购结构-VS Azure功能,c#,azure-devops,architecture,azure-functions,projects-and-solutions,C#,Azure Devops,Architecture,Azure Functions,Projects And Solutions,我正在开发名为EmployeeAPI、StudentAPI、ProjectsAPI的3个Azure函数,所有这些函数都在访问同一个SQL数据库。我被要求确保每个项目都是独立部署的(每个项目都有单独的代码库) 我的问题是,有一些共同的项目是3人共享的,维护所有3人都很痛苦。如果我更改了1项,比如数据库列,我还需要在其他项目上更新它 是否有一种方法可以使公共项目驻留在一个存储库中,并且更改将反映在这三个项目上?有些人建议我创建一个Nuget包或引用该项目 这是每个项目的解决方案结构(简化) 我希望我

我正在开发名为EmployeeAPI、StudentAPI、ProjectsAPI的3个Azure函数,所有这些函数都在访问同一个SQL数据库。我被要求确保每个项目都是独立部署的(每个项目都有单独的代码库)

我的问题是,有一些共同的项目是3人共享的,维护所有3人都很痛苦。如果我更改了1项,比如数据库列,我还需要在其他项目上更新它

是否有一种方法可以使公共项目驻留在一个存储库中,并且更改将反映在这三个项目上?有些人建议我创建一个Nuget包或引用该项目

这是每个项目的解决方案结构(简化)


我希望我解释得很好:-D

如果您希望将API项目保存在单独的存储库中,那么将共享项目移动到nuget包是最好的选择。您有文档显示如何将nuget包推送到提要


您还可以将所有共享项目移动到4th repo,并将它们用作API项目的子模块。您有关于在Azure DevOps中使用子模块的详细信息。

假设您使用的是Azure DevOps for CI/CD,那么您可以使用路径筛选器,如包含/排除,并将所有功能和共享项目放在一个存储库中。也许您可以使用其他CI/CD工具实现类似的功能

EmployeeAPI
ApplicationLayer (shared)
DomainLayer (shared)
InfraLayer (shared)
Tests (shared)

StudentAPI
ApplicationLayer (shared)
DomainLayer (shared)
InfraLayer (shared)
Tests (shared)


ProjectsAPI
ApplicationLayer (shared)
DomainLayer (shared)
InfraLayer (shared)
Tests (shared)