本文告诉大家在 MSBuild 里面常用的参数

一般的 msbuild 在编译的时候都会添加很多参数,用法如下

进入对应编译的 sln 或 csproj 文件所在的文件夹,执行下面命名

msbuild 

如果在文件夹里面存在多个不同的 sln 文件等,在 msbuild 后面添加对应的文件

msbuild xx.sln

此外添加的参数写在 msbuild 后面

还原加构建

原先的 msbuild 之前是需要调用 nuget restore 但当前可以不加上 nuget 还原,由 msbuild 自己还原

msbuild -restore

以上代码等价于

msbuild -t:restore,build

详细请看 NuGet pack and restore as MSBuild targets

并行编译

有多个项目一起编译,通过并行编译可以加快速度

/m 参数开启并行编译

msbuild /m

通过后面带上数字表示多少 CPU 同时编译,下面代码表示 6 个 CPU 同时编译

msbuild /m:6

发布版编译

通过发布版编译就是设置 configuration 属性为 release 通过下面代码

msbuild /p:Configuration=Release

在msbuild通过 /p 设置对应的属性的值

在 msbuild 的参数是不区分 /- 也就是 /p-p 是相同

msbuild /p:Configuration=Release -restore

重新编译

通过 -t:rebuild 重新编译

msbuild -t:rebuild 

日志

通过 -fileLogger-fl 可以指定输出到文件,通过 -filelogparameters 或短参数 flp 可以指定输出的日志文件

msbuild -fl -flp:logfile=xx.log;verbosity=n

这里的 verbosity 表示输出等级

运行上面代码建议编译当前文件夹里面的项目,然后将编译日志输出到 xx.log 文件夹

执行包还原

通过 -t:restore 可以还原包

msbuild -t:restore

建议的还原方法是下面代码

 NuGet restore
 dotnet restore
 msbuild -t:restore

清理项目

通过 -t:clean 清理项目

msbuild -t:clean

打包

通过 /t:pack 打包

msbuild -t:pack

UWP 打包

msbuild /t:restore /t:Publish /p:Configuration=Release /p:AppxPackageDir="D:\lindexi\AppxPackages\\" /p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload /p:AppxBundlePlatforms="x86|x64|arm"

本文会经常更新,请阅读原文: https://dotnet-campus.github.io//post/MSBuild-%E5%B8%B8%E7%94%A8%E5%8F%82%E6%95%B0.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

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