Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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# 连接到git的.NET项目结构和构建系统_C#_.net_Git_Version Control_Project Structure - Fatal编程技术网

C# 连接到git的.NET项目结构和构建系统

C# 连接到git的.NET项目结构和构建系统,c#,.net,git,version-control,project-structure,C#,.net,Git,Version Control,Project Structure,这是一个关于使用.NET/git和构建系统的项目结构的问题,因此我将尽量简短: 设置: .NET(C#和VB.NET) git(以前是svn,我们不使用外部) 我尝试了以下项目结构: [网页名称] 吉特先生 [应用程序名称-正下方的solutionfile] [项目1] [项目2] [配置] [标准]:为开发人员配置的一些标准(当第一个标准配置时复制这些标准 初始回购,但他/她可以更改) [脚本]:一些脚本,也是构建系统的脚本 [依赖关系] [依赖项1]:是一个子模块 [主文件夹

这是一个关于使用.NET/git和构建系统的项目结构的问题,因此我将尽量简短:

设置:

  • .NET(C#和VB.NET)
  • git(以前是svn,我们不使用外部)
我尝试了以下项目结构:

  • [网页名称]
    • 吉特先生
    • [应用程序名称-正下方的solutionfile]
      • [项目1]
      • [项目2]
    • [配置]
    • [标准]:为开发人员配置的一些标准(当第一个标准配置时复制这些标准
      初始回购,但他/她可以更改)
    • [脚本]:一些脚本,也是构建系统的脚本
    • [依赖关系]
      • [依赖项1]:是一个子模块
        • [主文件夹]
          • [解决方案文件]
            • [项目]
        • [依赖关系]
          • [附属法例1]
          • [附属法例2]
            • [依赖项2]:另一个子模块
            • [另一种解决方案]:在子模块中,有时我会有一些小助手来帮助我解决一些问题 构建过程。由构建脚本调用
我正在为我们所有的项目寻找一个好的结构,上面的结构到目前为止只用于一个项目

所以我的问题是:

  • 看起来这对你来说是一个有效的设置?我知道这是一个很难回答的问题,但您是否有类似的设置或类似设置的问题
  • 你会使用git子模块还是有更好的?有些人说他们是邪恶的,可能会引起问题。仅供参考,我的子模块是许多项目使用的项目。这些依赖项有时保存解决方案文件,因此我的项目文件夹处于整洁状态。然后在my mainapp中引用其中的项目。我不知道子树是否足够,我也听说过回购(针对android),也许这是一个解决方案?或者是否有其他用于管理依赖关系的工具
  • 有时我的依赖项也有依赖项。所以当我做一个递归克隆时,我得到了一个有子依赖项的有点奇怪的结构(见上面的结构)。有时我不得不将子依赖项添加到我的主应用程序中,因为我想在那里更改某些内容,并且需要对依赖项进行重建。那么,如何保持子依赖关系或子依赖关系呢
  • 如果您有开源依赖项(例如来自github),您是否直接使用DLL?还是分叉并添加git子模块
  • 您是将所有项目添加为projectreference还是直接引用DLL(例如,您的子依赖项或子依赖项将其分解一点,而不总是重建整个项目树)
  • 您喜欢哪种构建系统
我知道这些问题没有一个“正确”的答案,但也许你能帮我一点忙,分享一些想法

谢谢,
Cyber1000项目结构:具有递归子模块依赖关系是很自然的。否则,子模块必须采用项目结构(硬编码相对路径以匹配父结构)。然后,子模块特定于特定项目,但不适用于您开发的所有项目

子模块:你必须熟悉它。这是必要的,因为dll缺乏版本控制的可跟踪性。子模块可以告诉项目当前使用的确切版本(散列)

保留子依赖项:不要保留,因为我们的构建服务器在每次构建之前总是运行“git clean”

开源依赖项:Fork和use作为子模块,我们可能会有一些小的修改来满足我们的需求。例如,项目文件是VS2005,我们使用VS2010。然后,当新版本可用时,我们更改项目文件并合并上游分支

项目参考:如果可能的话,大部分时间使用项目参考


构建系统:CruiseControl.NET,作为.NET的一员。

项目结构:具有递归子模块依赖关系是很自然的。否则,子模块必须采用项目结构(硬编码相对路径以匹配父结构)。然后,子模块特定于特定项目,但不适用于您开发的所有项目

子模块:你必须熟悉它。这是必要的,因为dll缺乏版本控制的可跟踪性。子模块可以告诉项目当前使用的确切版本(散列)

保留子依赖项:不要保留,因为我们的构建服务器在每次构建之前总是运行“git clean”

开源依赖项:Fork和use作为子模块,我们可能会有一些小的修改来满足我们的需求。例如,项目文件是VS2005,我们使用VS2010。然后,当新版本可用时,我们更改项目文件并合并上游分支

项目参考:如果可能的话,大部分时间使用项目参考

构建系统:CruiseControl.NET,作为一个.NET的家伙