MSBuild:条件结构(项目引用|文件引用)

3

我仍在尝试消除项目中需要cobol编译器的需求,该项目中包含cobol项目。

是否可以创建以下构建行为:

如果配置为Debug,则在ExCobol.cblproj上使用ProjectReferences, 如果配置为DebugVB,则在ExCobol.dll上使用FileReferences

如果是,请问如何实现?

我假设在项目文件中使用标签将完成此操作。

这样真的可以消除DebugVB配置所需的cobol编译器吗?

2个回答

5
关于条件“how”,假设您拥有以下任一条件:
<ProjectReference ...>...</ProjectReference>

或者

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

你希望手动编辑 .proj 文件,将它们包含在其中,如下所示。
<ProjectReference Condition="'$(Configuration)'!='DebugVB'" ...>...</ProjectReference>
<Reference Condition="'$(Configuration)'=='DebugVB'" ...>...</Reference>

至少问题的一部分已经得到了回答。 我猜我必须自己尝试剩下的部分。 无论如何,谢谢! - Doc Snuggles
稍晚才加入这个行列,但我发现自己正在做类似的事情,从直接的MSBuild角度来看,这个方法效果非常好。根据构建配置正确编译。然而,在VS2010中我经历了一些奇怪的事情 - 例如,项目资源管理器中的引用总是看起来像程序集引用。此外,生成顺序不能自动确定。我猜想这是因为即使条件规定ProjectReference,VS似乎仍认为它是一个程序集引用。 - Yoopergeek
@Yoopergeek - 我也遇到了汇编与项目引用的问题。你解决了吗? https://dev59.com/PGTWa4cB1Zd3GeqPAzXW - kevindaub

0

差点忘了这个问题:

Brian的答案对我来说完美无缺。

回答问题的第二部分:

如果您设置不同的配置,它确实消除了每台机器上都需要cobol编译器的需求。

谢谢Brian。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接