zoukankan      html  css  js  c++  java
  • msbuild 项目文件常用判断条件

    在写项目文件的时候,需要根据不同的条件定义或执行不同的代码,有一些比较常使用的判断,本文收藏起来,方便大家找

    在 msbuild 的项目文件 cspoj 或 xx.target 等文件里面,可以使用 Condition 条件写在很多标签元素作为判断

    例如在 Target 上面添加条件,只有条件满足了才会执行

      <Target Name="Lindexi" AfterTargets="CoreCompile" Condition="'$(Configuration)|$(TargetFramework)'=='DEBUG|net45'">
        <Message Text="林德熙是逗比"></Message>
      </Target>
    

    下面将告诉大家一些常使用的判断

    判断在调试下编译

    请看代码

    Condition="'$(Configuration)'=='Debug'"
    

    这里 Configuration 的判断是不区分大小写的,默认写的是 DebugDEBUG 是用在条件编译里面

    例如这样写

      <PropertyGroup Condition=" '$(Configuration)' == 'Debug'">
          <MainProjectPath>blog.lindexi.com</MainProjectPath>
      </PropertyGroup>
    

    判断在发布下编译

    请看代码

    Condition="'$(Configuration)'!='Debug'"
    

    也就是上面代码反过来判断不是在调试下编译

    另一个判断方法请看代码,这是不推荐的判断方法

    Condition="'$(Configuration)'=='Release'"
    

    这个不推荐的写法,一般只有调试下和非调试下,用上面的写法可能有逗比写了 Release-x 于是就判断不是发布下,此时就没有做发布的优化

    判断平台

    判断在 .NET Framework 4.5 运行

    Condition="'$(TargetFramework)'=='net45'"
    

    对应的判断 .NET Standard 使用如下缩写 netstandard1.0

    判断 .NET Core 使用如下缩写 netcoreapp1.0

    多个判断

    需要同时生效有两个写法,如判断只有在 .NET Framework 4.5 同时在调试下

    Condition="'$(Configuration)|$(TargetFramework)'=='DEBUG|net45'"
    

    第二个方法是使用关键字 And 连接

    Condition=" '$(TargetFramework)'=='net45' And $(Configuration)=='Debug'"
    

    两个条件的或判断使用关键字 Or 连接

    Condition=" '$(TargetFramework)'=='net45' or $(Configuration)=='Debug'"
    

    更多判断请看

    Roslyn 在项目文件使用条件判断

    MSBuild 如何编写带条件的属性、集合和任务 Condition? - walterlv

    Target frameworks

    我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

    如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

  • 相关阅读:
    ASP.NET Web API涉及到的上下文
    .NET Core 和 ASP.NET 5 RC1 发布
    通过NameValuePairsValueProvider对象来获取指定前缀的Key
    ASP.NET Web API获取Model元数据
    功放AUX接口解析
    安全协议:SSL、TSL、SSH概述
    从自签名证书导出pfx和cer证书
    windows下使用makecert命令生成自签名证书
    低音炮四种典型的接线方法
    音箱灵敏度
  • 原文地址:https://www.cnblogs.com/lindexi/p/12086732.html
Copyright © 2011-2022 走看看