博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MSBuild
阅读量:7045 次
发布时间:2019-06-28

本文共 2315 字,大约阅读时间需要 7 分钟。

  hot3.png

引言

使用 Visual Studio IDE 开发项目时,我们会很自然的 运行/F5 / 右键项目-生成/重新生成/清理,然后就可以看到对应的结果了.

这些结果通常是:

  • 一些可执行文件, .dll/.exe
  • 一些弹出的 Console 控制台界面
  • 一些网页
  • 一些窗体
  • ...

但是为什么点击上述的一些操作按钮后,就会出现这样的结果呢?

或者说点击上述的操作按钮后,中间发生了什么?

答案是:MSBuild

MSBuild.exe 路径

通常情况下, 指定版本的 .NET Framework 中内置了 MSBuild.exe :

  • C:\Windows\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe
  • C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe
  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
  • ...

如果你还安装了 Visual Studio 2017 的话, Visual Studio 2017 中也内置了一个 MSBuild.exe ,路径如下:

  • D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe

Tips: MSBuild.exe 路径通常对于需要手动/自动执行构建任务的小伙伴有所帮助.

使用实例

Tips: 据说在 Visual Studio 中通过调整工具-选项-项目和解决方案-生成并运行中的MSBuild 项目生成输出详细信息列表选项为普通,执行操作时,可看到对应执行的命令?

最简单用法

通常我们新建/现有的解决方案/项目中会包含.sln/.csproj文件

# 构建解决方案,使用默认参数MSBuild xxx.sln # 构建项目,使用默认参数MSBuild xxx.csproj

指定环境配置

新建的项目通常包含Debug/Release这2种默认环境配置(还可以自定义),构建时可以通过以下方式指定

# /property = /p(简写)# 生成 Debug 环境下的内容MSBuild xxx.csproj /p:Configuration=Debug# 生成 Release 环境下的内容MSBuild xxx.csproj /p:Configuration=Release

指定目标操作

在 Visual Studio 中构建时,通常会有 生成/重新生成/清理 等操作,命令如下:

# /target = /t(简写)# 清理MSBuild xxx.csproj /target:Clean# 生成MSBuild xxx.csproj /target:Build# 重新生成MSBuild xxx.csproj /target:Rebuild# 等同于组合操作MSBuild xxx.csproj /target:Clean;Build

指定输出目录

RT.

# MSBuild xxx.csproj /p:OutDic=E:\SomeDir\# 如何指定到项目默认输出目录呢?

参考

time (dotnet msbuild test.csproj -t:Build -p:Configuration=Debug -p:OutDir=bin -p:DebugType=None -p:DebugSymbols=False -restore:False -nologo -detailedSummary -p:nodeReuse=false -p:ResolveProjectReferences=false  -consoleLoggerParameters:PerformanceSummary -p:maxCpuCount=1 -p:BuildProjectReferences=false -p:BuildAssemblyReferences=false -p:no-cache=true -p:DependsOnTargets=""  && dotnet ./bin/test.dll)
Measure-Command { dotnet msbuild test.csproj -t:Build -p:Configuration=Debug -p:OutDir=bin -p:DebugType=None -p:DebugSymbols=False -restore:False -nologo -detailedSummary -p:nodeReuse=false -p:ResolveProjectReferences=false  -consoleLoggerParameters:PerformanceSummary -p:maxCpuCount=16 -p:BuildProjectReferences=false -p:BuildAssemblyReferences=false -p:no-cache=true -p:DependsOnTargets=""  | dotnet ./bin/test.dll}

参考文档

  • - 不大管用
  • - 尝试中
  • - 尝试中
  • [使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数](

转载于:https://my.oschina.net/taadis/blog/2218634

你可能感兴趣的文章
绿盟科技网络安全威胁周报2017.36 Struts2远程代码执行漏洞(S2-052)CVE-2017-9805
查看>>
中国人工智能学会通讯——搜狗搜索:从搜索到问答 1.2 搜狗汪仔——具备问答能力的机器人...
查看>>
七年之痒? 可七年也会有大奖
查看>>
完整商业闭环金融手游“九点半”上线
查看>>
倍儿爽!QQ轻聊版打造纯办公体验
查看>>
大数据全栈式开发语言 – Python
查看>>
Linux虚拟内存地址转化成物理内存地址
查看>>
Android动画之萌萌哒蜡烛吹蜡烛动画
查看>>
Linux驱动技术(五) _设备阻塞/非阻塞读写
查看>>
电视上做独立音箱,小米的野望
查看>>
大数据时代:媒体新任务和媒体人的新角色
查看>>
欧美完成数据保护总协定谈判
查看>>
Open Baton起个大早,赶个晚集
查看>>
IDC发布2017年中国医疗IT 十大预测——医疗信息化向人工智能跨进
查看>>
数据爆发式增长云计算如何将挑战转化为机遇
查看>>
Spark将机器学习与GPU加速机制纳入自身
查看>>
盘点:2016年度WiFi行业十大事件
查看>>
怎样判断一个人是否适合做数据分析?
查看>>
私有云成功规划的四项法则
查看>>
五大尴尬掣肘大数据
查看>>