MSBuild基于常量的条件

时间:2012-09-28 17:19:31

标签: c# msbuild mono

所以我正在尝试在Mono中构建一个C#项目。我希望包含对System.Deployment的引用,条件是Mono编译器定义的__MonoCS__常量的存在与否。我不确定当MSBuild获得我的.csproj时,这些常量是否已定义。

我想我可能需要添加Mono配置来定义一个MONO常量然后我可以删除对System.Deployment的引用并使用#if MONO命令有条件地编译我需要的行...但如果我可以简单地将Condition="Defined(__MonoCS__)"添加到相关的行中并将其称为好,那将会更容易......

2 个答案:

答案 0 :(得分:2)

我认为你不幸倒退了。编译器常量永远不会传递回MSBuild,调用链是MSBuild - >编译器 - >预处理器。

答案 1 :(得分:0)

可悲的是Mono在xbuild中有this bug(相当于MSBuild),因此很难定义这样的条件。

想要尝试修复错误?应该很容易,但实际上我没有时间尝试。