owenwengerd 发表于 2015-3-4 14:55:28

MSBuild:为什么“Condition”属性对“ItemGroup”元素不起作用?

MS Visual Studio 2013 Update 4.
When 和 ItemGroup 元素都可以具有 Condition 属性(如我在 MSDN 中看到的那样)。但我得到的结果不同。
当 $(CAD_Year) 是 2015 年时,我预计
AcRibbon
不会被引用到我的项目:
   

    $(CAD_SDK_Location)\$(Inc)\AcRibbon.dll
    False


但是我总是在 AcRibbon 的解决方案浏览器中获得
未解析的引用

但是这个变体工作正常:


   
      
      $(CAD_SDK_Location)\$(Inc)\AcRibbon.dll
      False
      
   


在这种情况下,只有当$(CAD_Year)小于2010(正如我所期望的那样)时,
才会引用AcRibbon
。这两个变体都位于全球区域。
为什么我得到的结果不同?
**** Hidden Message *****

别样春天 发表于 2015-3-5 22:15:27

我不熟悉这个问题,但听起来好像解决方案资源管理器只是有一个不完整的xml解析器,它不能正确评估ItemGroup情况下的条件。想必MSBuild对它的解析是正确的。

勤迷西游记 发表于 2015-3-6 01:54:41

感谢您的回答,owenwengerd。但我认为你在这个案子上是不对的……我已经找到了这种行为的原因(在我看来),但我没有写过,因为我认为这对任何人来说都不有趣。如果您感兴趣的话:我在MSDN中找到了答案:
我认为
项目组
元素也是如此……
另外,我不喜欢为自己的“独白”创建主题。如果没有人写答案,而我自己找到了答案,那么我宁愿在可能的情况下删除该主题。不幸的是,我不知道如何删除这个网站上自己的主题。当我尝试这样做时,我收到了这样一条信息:
如果你告诉我怎么做,我将感谢你。
页: [1]
查看完整版本: MSBuild:为什么“Condition”属性对“ItemGroup”元素不起作用?