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

    title author date CreateTime categories
    msbuild 项目文件常用判断条件
    lindexi
    2019-08-31 16:55:59 +0800
    2019-7-3 17:7:38 +0800
    Roslyn 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

  • 相关阅读:
    Calling a parent window function from an iframe
    JSON with Java
    Posting array of JSON objects to MVC3 action method via jQuery ajax
    What's the difference between jquery.js and jquery.min.js?
    jquery loop on Json data using $.each
    jquery ui tabs详解(中文)
    DataTables warning requested unknown parameter
    Datatables 1.10.x在命名上与1.9.x
    jQuery 1.x and 2.x , which is better?
    DataTabless Add rows
  • 原文地址:https://www.cnblogs.com/lindexi/p/12085918.html
Copyright © 2011-2022 走看看