如何从建筑中排除一些项目?

时间:2013-10-04 10:56:36

标签: msbuild mono xbuild

我在解决方案中有X个项目: AllPlatformProject1,AllPlatformProject2 ...... ProjectOnlyForWindows1,OnlyForWindows2 ...... ProjectNotLinux1,ProjectNotLinux2 ......

我想排除“ OnlyForWindows ”和“ NotLinux ”,但是如何? 我想使用xbuild并且能够为所有目标执行此操作。

2 个答案:

答案 0 :(得分:3)

你不能用一个人来做。通常人们会创建多个解决方案,即使在同一目录中也是如此。

Everything.sln
WindowsCentric.sln
LinuxCentric.sln

类似的东西。

“陷阱”是......当您添加“按项目引用”时,两个项目都需要位于.sln文件中。

答案 1 :(得分:1)

您是否尝试过使用不同的配置与目标配对并省略特定项目的配置?例如:

解决方案配置:

 LinuxDebug
 LinuxRelease
 WindowsDebug 
 WindowsRelease

然后你告诉解决方案从Windows *配置中省略linux项目,反之亦然?

我承认,我没有利用xbuild,但如果你使用的是解决方案而不是遍历proj文件,这种方法可以在MSBuild中使用。对于Traversal proj文件,您只需向ItemGroup包含添加条件,以基于$()属性省略项目。