msbuild,支持源代码外生成

msbuild,支持源代码外生成,msbuild,Msbuild,是否可以使用MSBuild生成源生成:源目录外的生成 这是一些其他建筑系统的标准配置,如or。当您想要尝试构建选项或共享一个源代码树(可能非常庞大)时,它们非常有用 对于那些问为什么需要这样的东西的人:有了这个,我可以做一个签出(这里是4GB),做一个构建,恢复到某个特定的修订,然后再做另一个构建,而不必扔掉第一个构建。或者,我可以使用一些自定义设置进行一次性配置,而无需考虑VS中的所有配置设置,或者在多个自动构建器之间共享签出 我知道我可以用不同的路径定义不同的配置,但这很麻烦(特别是在处理多

是否可以使用MSBuild生成源生成:源目录外的生成

这是一些其他建筑系统的标准配置,如or。当您想要尝试构建选项或共享一个源代码树(可能非常庞大)时,它们非常有用

对于那些问为什么需要这样的东西的人:有了这个,我可以做一个签出(这里是4GB),做一个构建,恢复到某个特定的修订,然后再做另一个构建,而不必扔掉第一个构建。或者,我可以使用一些自定义设置进行一次性配置,而无需考虑VS中的所有配置设置,或者在多个自动构建器之间共享签出


我知道我可以用不同的路径定义不同的配置,但这很麻烦(特别是在处理多个项目时),而且这些配置会传播给其他开发人员(我希望在试验时避免这种情况)使用常见的VCS操作。

一种可能的解决方案是将配置内容移动到单独的.target文件中。如果您想使用这些文件进行实验,可以使用您选择的文件替换.target文件,而其他开发人员可以使用默认的.target配置


我仍然不确定您的源是否以及为什么会成为问题,因为您会将它们导出到一个可配置的构建路径。是否因为将源代码导出到实验构建位置会花费太长时间?你能在你的实验构建中使用预构建的共享组件吗


我怀疑您正在过期限制,因为您将MSBuild用作Visual Studio解决方案的CLI。诚然,MSBuild需要相当多的努力来满足灵活和复杂的需求。也许像CruiseControl这样的持续集成系统(仅举一个例子)是您所需要的,因为它提供了易用性和灵活性,您可以从Autotools和CMake获得这些。如果“免费”不是您的需求之一,Team Foundation Server可能是为您驱动MSBug的选项。
4GB源是巨大的,因此任何给定的工具都必须围绕移动这么多内容来保持快速。

不太清楚“源目录外”是什么意思。请描述你的场景和你实际期望发生的事情。所以,这不是开箱即用的,我必须破解项目文件?遗憾的是,autotools和cmake在默认情况下都可以做到这一点。@liori很难想象您的具体问题来自何处。据我从Autotools和CMake的信息中收集到的信息,它们允许您指定自定义生成和/或输出位置。这只是我期望从生成系统获得的某种灵活性。例如,我可以执行签出(这里是4GB),生成一个版本,恢复到某个特定的修订版本,并在不丢弃第一个版本的情况下执行另一个版本。或者,我可以使用一些自定义设置进行一次性配置,而无需考虑VS中的所有配置设置。