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. Scrum立会报告+燃尽图 02

    本次作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9912 一.小组情况组长:贺敬文组员:彭思雨 王志文 位军营 徐丽君队名 ...

  2. Android属性动画完全解析

    转载:http://blog.csdn.net/guolin_blog/article/details/43536355 在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始 ...

  3. 问题:unknown error: call function result missing 'value' 解决方法

    问题:unknown error: call function result missing 'value' 页面也没有 填充信息 原因是:安装与chrome和对应的chromedriver版本问题 ...

  4. Git入门之常用命令(转载阮一峰老师)

    流程图 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓 ...

  5. asp.net mvc model attribute and razor and form and jquery validate 完美结合

    1.创建Model,添加标注. [Serializable] public class BaseUserModel:BaseModel { [StringLength(100)] [Required( ...

  6. CSS3 长度单位

    http://www.w3chtml.com/css3/units/length/vh.html https://www.html.cn/book/css/values/length/vh.htm . ...

  7. 解密Go语言之 pprof

    相信很多人都听过“雷神 3”关于性能优化的故事.在一个 3D 游戏引擎的源码里,John Carmack 将 1/sqrt(x) 这个函数的执行效率优化到了极致. 一般我们使用二分法,或者牛顿迭代法计 ...

  8. javase程序设计上机作业1

    package javaxgp.teacher.test; import java.math.BigInteger; import java.util.Scanner; import java.uti ...

  9. 《Python编程从0到1》笔记2——表达式竟然也有副作用

    在表达式的求值过程中,对状态的改变称为表达式的副作用.Python中内建的各种运算符(此处是狭义的含义,如加减乘除比较等运算符,并不包含用户自定义的运算符或函数)是没有副作用的,但各种函数调用时常带有 ...

  10. ros3。3教程 入门到高级

    115.com 目录route 基 础 篇(21课) 1 Ros简介 主要讲解ros的基础知识,让用户对ros有个大致了解,并对ros进行简单演示 语音视频 20分16秒   2 CDROM安装 主要 ...