我在VS2008中有一个遗留项目,我们即将开始重构以实现更好的组件化。解决方案中的150个项目之间的引用是混乱的,所以作为起点,我试图至少达到一个点,我可以让一些项目使用对其他项目的二进制引用,而其他项目使用项目引用。(出于构建时间的原因)
为了举例说明,给定项目A、B和C,我希望看到...
A references C.dll
B参考C.csproj
现在的问题是,我需要确保在A.csproj之前构建C.csproj。我知道我可以使用项目依赖来控制构建顺序,但这似乎恰恰导致了我试图避免的行为……构建A总是导致构建C。我确信我可以直接修改proj或sln文件来按照我想要的顺序进行构建,但我也确信VS的自动魔术会在很短的时间内覆盖它。
有没有什么方法可以可靠地控制这个顺序,或者我在这里遗漏了一些明显的东西?
谢谢..。
发布于 2009-12-03 11:58:25
将相关组件(.csproj)分离到单独的解决方案中。这将强制执行跨包边界的二进制引用。它还强制您和其他开发人员按层对组件进行分组。
然后使用您的构建过程以正确的顺序构建解决方案,从依赖程度最低的包开始。
在我看来,从供应链管理的角度来看,解决方案== UML Package == Merge Module (所有解决方案都创建一个合并模块)
发布于 2009-12-03 11:55:18
您可以创建自定义的.sln文件,而不是依赖于msbuild和msbuild文件,这样,根据所选的目标,它将只生成某些程序集。如果你还不了解msbuild,那就需要学习msbuild。
https://stackoverflow.com/questions/1837488
复制相似问题