2009-12-09 116 views
3

我仍然试图阐明cobol项目中需要cobol编译器的项目。MSBuild:有条件的构造(项目参考|文件参考)

是否有可能产生以下构建行为:

如果配置调试,然后使用上ExCobol.cblproj ProjectReferences如果配置DebugVB然后ExCobol.dll

如果是,如何使用FileReferences实现它?

我假设在项目文件中使用标签将 做窍门。

这是否真的消除了编译器对 DebugVB配置的需求?

回答

5

关于有条件的 '如何',假设你要么

<ProjectReference ...>...</ProjectReference> 

<Reference ...>...</Reference> 

要手工编辑.proj文件,包括正是如此

<ProjectReference Condition="'$(Configuration)'!='DebugVB'" ...>...</ProjectReference> 
<Reference Condition="'$(Configuration)'=='DebugVB'" ...>...</Reference> 
+0

问题的答案至少有一部分。 猜猜我必须自己尝试休息。 无论如何,谢谢! – 2009-12-14 10:19:54

+0

为晚会来临,但我发现自己做了类似的事情,从直接的MSBuild角度来看,这很好。基于构建配置正确编译。但是,我在VS2010中遇到过一些奇怪 - 例如,项目浏览器中的引用总是看起来像汇编引用。另外,Build-Order不会自动计算出来。我假设这是因为VS似乎认为,即使条件规定了ProjectReference,它也是一个Assembly Reference。 – Yoopergeek 2010-12-29 13:46:55

+0

@Yoopergeek - 我正在体验Assembly vs Project Reference。你能解决吗? http://stackoverflow.com/questions/10738246/buildinginsidevisualstudio-property-value-not-working-with-file-reference-and-pr – kevindaub 2012-05-29 13:18:14

0

几乎忘了这个问题: Brian的答案完全适合我。

并回答问题的第二部分:

它的确消除了对每一个maschine如果你 设置不同的配置需要一个COBOL编译器。

谢谢Brian。