title author date CreateTime categories
msbuild 项目文件常用判断条件
lindexi
2019-11-29 08:36:48 +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

手把手教你写 Roslyn 修改编译

2019-11-29-msbuild-项目文件常用判断条件的更多相关文章

  1. msbuild 项目文件常用判断条件

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

  2. 2019-8-31-msbuild-项目文件常用判断条件

    title author date CreateTime categories msbuild 项目文件常用判断条件 lindexi 2019-08-31 16:55:59 +0800 2019-7- ...

  3. 2019.11.29 Mysql的数据操作

    为名为name的表增加数据(插入所有字段) insert into name values(1,‘张三’,‘男’,20); 为名为name的表增加数据(插入部分字段) insert into name ...

  4. 2019.11.29 SAP SMTP郵件服務器配置 發送端 QQ郵箱

    今天群裏的小夥伴問了如何配置郵件的問題,隨自己在sap裏面配置了一個 1.    RZ10配置參數 a)       参数配置前,先导入激活版本 执行完毕后返回 b)      输入参数文件DEFAU ...

  5. pycharm+anaconda在Mac上的配置方法 2019.11.29

    内心os: 听人说,写blog是加分项,那他就不是浪费时间的事儿了呗 毕竟自己菜还是留下来东西来自己欣赏吧 Mac小电脑上进行python数据开发环境的配置 首先下载Anaconda,一个超好用的数据 ...

  6. Supervision meeting notes 2019/11/29

    topic 分支:  1. subgraph/subsequence mining Wang Jin, routine behavior/ motif. Philippe Fournier Viger ...

  7. EOJ Monthly 2019.11 E. 数学题(莫比乌斯反演+杜教筛+拉格朗日插值)

    传送门 题意: 统计\(k\)元组个数\((a_1,a_2,\cdots,a_n),1\leq a_i\leq n\)使得\(gcd(a_1,a_2,\cdots,a_k,n)=1\). 定义\(f( ...

  8. linux Shell中常用的条件判断

    linux Shell中常用的条件判断 -b file            若文件存在且是一个块特殊文件,则为真 -c file            若文件存在且是一个字符特殊文件,则为真 -d ...

  9. shell 脚本——判断条件

    在之前的shell语言学习笔记中已经写过shell的几种判断语句及循环语句,也简单的介绍了shell语言判断语句和判断条件.在此再做进一步学习. test命令的测试功能 test命令用于检测系统文件及 ...

随机推荐

  1. 20175215 2018-2019-2 第二周java课程学习总结

    一.学生免费申请使用IDEA 下载好IDEA后,设置到最后有一个界面, 我们需要到IDEA官网进行IDEA免费试用权的申请,如果有学校的邮箱,使用学校的邮箱注册并证明是自己的就可以直接通过申请.如下图 ...

  2. note:memcache 調試遇到的一些問題

    1. gdb調試時提示:<value optimized out> ,原因是memcache的編譯选项做了优化,修改configure中CFLAGS中的-O3为-O0,可以解决gdb调试过 ...

  3. Linux环境快速搭建elasticsearch6.5.4集群和Head插件

    https://blog.csdn.net/boling_cavalry/article/details/86358716

  4. debian安装图形界面,使用mstsc远程登录

    环境:debian 10.2 更新软件列表 apt-get update 安装最基本的gnome图形相关软件 apt install x-window-system-core gnome-core 安 ...

  5. leetcode-easy-trees-98. Validate Binary Search Tree-NO

    mycode   不会 注意:root的值要比左子树上所有的数大 参考 # Definition for a binary tree node. # class TreeNode(object): # ...

  6. Git中.gitignore忽略文件(maven项目)

    使用情景: 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们 解决方案: 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略 ...

  7. Jenkins持续集成环境部署

    一.下载Jenkins Jenkins下载地址:https://jenkins.io/download/ 这里我们下载的是jenkins.war 二.启动Jenkins 在Linux下启动Jenkin ...

  8. linux创建软链接

    linux软链接linux下的软链接类似于windows下的快捷方式实例:ln -s /home/gamestat    /gamestatln -s a b 中的 a 就是源文件,b是链接文件名,其 ...

  9. PyCharm给函数增加文档注释

    选择函数名,左上角会出现一个小灯泡,点击小灯泡 选择第二项 选中调用的函数名 Ctrl + Q 显示注释 如何配置操作习惯 File > sitting > 搜索 'keymap' > ...

  10. LeetCode.961-2N数组中N次重复的元素(N-Repeated Element in Size 2N Array)

    这是悦乐书的第365次更新,第393篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第227题(顺位题号是961).在大小为2N的数组A中,存在N+1个唯一元素,并且这些元 ...