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

时间:2009-12-03 03:41:26

标签: c# visual-studio-2008

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

要说明,给定项目A,B和C,我希望看到......

引用C.dll

B引用C.csproj

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

有没有办法可靠地控制这个订单,还是我错过了一些明显的东西?

...谢谢

2 个答案:

答案 0 :(得分:1)

您可以制作自定义msbuild文件,而不是依赖.csproj和.sln文件,这样,根据所选目标,它只会构建某些程序集。如果您不知道它,则需要学习msbuild。

答案 1 :(得分:1)

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

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

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