是否可以使用MSBuild进行源外构建:源目录外的构建?
这是其他一些建筑系统的标准配置,例如Autotools或CMake。当您想要尝试构建选项或共享一个源树(可能很大)时,它们非常有用。
对于那些问为什么需要这样的人:有了这个,我可以做一个结账(这里4GB),做一个构建,恢复到一些特定的修改,并做另一个构建而不丢弃第一个。或者我可以使用一些自定义设置进行一次性配置,而无需考虑VS中的所有配置设置。或者在多个自动构建器之间共享结帐。
我知道我可以使用不同的路径定义单独的配置,但这很麻烦(特别是在处理多个项目时),并且这些配置将通过常见的VCS操作传播给其他开发人员(我希望在实验时避免使用)。 / p>
答案 0 :(得分:0)
一种可能的解决方案是将配置内容移动到单独的.target文件中。如果您想试验那些,可以使用您选择的.target文件替换.target文件,而其他开发人员可以使用默认的.target配置。
我仍然不确定是否以及为什么您的源是一个问题,因为您将它们导出到可配置的构建路径。是因为将源导出到实验性构建位置需要很长时间吗?您可以为实验构建使用预构建的共享组件吗?
我怀疑您的限制是因为您使用MSBuild作为Visual Studio解决方案的CLI。无可否认,MSBuild需要付出相当大的努力来满足灵活和复杂的要求。也许像CruiseControl这样的连续集成系统(仅举一例)是您正在寻找的,因为它提供了易用性和灵活性,您可以使用Autotools和CMake。如果“免费”不是您的要求之一,Team Foundation Server可能是为您驱动MSBuild的选项。
4GB来源是巨大的,因此任何给定的工具都必须解决这些问题,以保持快速。