代码之家  ›  专栏  ›  技术社区  ›  Jim L

处理大型项目中的依赖项…是否可以在不使用C/VS2008中的项目依赖项的情况下可靠地更改构建顺序?

  •  0
  • Jim L  · 技术社区  · 15 年前

    我在VS2008中有一个遗留项目,我们将开始重构以实现更好的组件化。解决方案中150个项目之间的引用是混乱的,因此作为一个起点,我试图至少达到一个点,我可以让一些项目使用对其他项目的二进制引用,而其他项目使用项目引用。(出于构建时间原因)

    举例来说,考虑到项目A、B和C,我想看看……

    a引用c.dll

    B参考文献C.CSproj

    现在的问题是,我需要确保c.csproj在a.csproj之前构建。我知道我可以使用项目依赖性控制构建顺序,但这似乎正是我试图避免的行为…构建A总是导致C构建。我确信我可以直接使用proj或sln文件来获得我想要的构建顺序,但我也确信这会被vs的自动魔法在短时间内覆盖。

    是否有可靠的方法来控制这个订单,或者我是否遗漏了一些明显的东西?

    谢谢。。。

    2 回复  |  直到 15 年前
        1
  •  1
  •   dkackman Srinivas Kokkula    15 年前

    将相关组件(.csproj)分离到单独的解决方案中。这将强制跨包边界的二进制引用。它还强制您和其他开发人员按层对组件进行分组。

    然后使用您的构建过程以正确的顺序构建解决方案,从最不依赖的包开始。

    在我的估计中,从SCM的角度来看,解决方案==UML包==Merge模块(所有解决方案都创建一个合并模块)

        2
  •  1
  •   Steven Evers    15 年前

    可以生成自定义的msbuild文件,而不是依赖.csproj和.sln文件,这样,根据所选目标,它将只生成某些程序集。如果你还不知道,就需要学习msbuild。