本文告诉大家如何通过 msbuild 编译一个项目,通过命令行编译可以输出更多的编译信息,可以用来调试自己写的编译相关方法,可以看到是哪个文件编译失败


在开始菜单可以找到 VisualStudio 的安装文件夹,基本上开发者命令行的英文名叫 Developer Command Prompt 中文名是开发者命令行

打开之后默认是 C 盘的一个路径,假如自己的项目所在文件夹是 D:\lindexi\github 需要先通过 cd 将命令行的工作路径修改为当前需要编译的路径,通过下面命令可以从 C 盘到代码文件夹

  1. > cd /d 代码所在文件夹



首先需要还原所有安装的 Nuget 包,此时建议将 Nuget 这个程序加入到环境变量,可以从 官网 下载最新版本的 Nuget 程序,如我下载了 5.0 的版本,我将下载的 Nuget 程序放在了 D:\lindexi\ 文件夹,将 Nuget 下载的程序修改文件名是 Nuget.exe 然后将 D:\lindexi\nuget.exe 加入到环境变量

在 Windows 将某个文件夹加入到环境变量的方法是右击此电脑属性(如果现在还有开发者使用的是 Windows7 那么请自己百度如何将某个文件夹添加到环境变量)点击高级系统设置

在系统属性页面点击高级,找到环境变量按钮

在系统变量里面找到 Path 变量,双击就可以编辑,建议只修改用户的变量

在最后一行空白的地方双击一下,输入需要添加到环境变量的文件夹,如我上面的 D:\lindexi 文件夹

添加完成之后如果想要命令行生效,需要先将命令行关闭,再重新打开,进入需要编译的文件夹

通过 Nuget 还原请使用下面代码

  1. > nuget restore

这个命令可以在 sln 文件所在的文件夹输入,也可以在 nuget.package 文件所在的文件夹里面输入,一个是还原所有项目的 nuget 一个是还原一个项目的

如果有多个 sln 文件,如 a.sln 和 b.sln 请在 Nuget restore 的最后添加上需要还原的文件

  1. > nuget restore a.sln

然后通过 msbuild 还原新的项目格式的引用

  1. > msbuild -t:restore

还原之后通过 msbuild 编译

  1. > msbuild

通过 msbuild 编译默认是不需要添加任何参数,因为所有参数都在 sln 文件

如果需要特殊指定,如编译 UWP 项目请看 win10 uwp 使用 msbuild 命令行编译 UWP 程序

如编译为 release 可以使用 -p 修改 configuration 属性为 release 编译

  1. msbuild -p:configuration="release"


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

如何通过命令行 msbuild 编译项目的更多相关文章

  1. 2019-7-3-如何通过命令行-msbuild-编译项目

    title author date CreateTime categories 如何通过命令行 msbuild 编译项目 lindexi 2019-07-03 19:12:19 +0800 2019- ...

  2. [转]Windows中使用命令行方式编译打包Android项目

    http://my.oschina.net/liux/blog/37875 网上很多用Ant来编译打包Android应用的文章,毕竟Ant是纯Java语言编写的,具有很好的跨平台性.今天想写个纯win ...

  3. 通过脚本调用MSBuild编译项目时指定Configuration(解決方案配置)和Platform(解決方案平台),Rebuid(重新生成解决方案),Clean(清理解决方案)

    为了方便打包测试,自己PowerShell写了一个编译和发布的脚本,调用msbuild通过命令行来编译当前解决方案 后来发现一个问题,用VS编译解决方案,我通过 项目属性-Build设置 Releas ...

  4. VS2015——命令行下编译、静态库动态库制作以及断点调试

    c程序编译流程 程序的基本流程如图: 1. 预处理 预处理相当于根据预处理指令组装新的C/C++程序.经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的 ...

  5. Cordova之如何用命令行创建一个项目(完整示例)

    原文:Cordova之如何用命令行创建一个项目(完整示例) 1. 创建cordova项目 (注意:当第一次创建或编译项目的时候,可能系统会自动下载一些东西,需要一些时间.) 在某个目录下创建cordo ...

  6. 命令行创建Maven项目卡住以及出错解决办法。

    第一次通过命令行创建maven项目.结果,果不其然啊,还是出问题了,不过出问题比没有出问题强,知道哪里有问题并学会解决也是一种收获. 遇到的第一个问题,在从仓库下载东西的时候会卡住,我开始以为是网速问 ...

  7. 学习笔记-使用cmd命令行创建nodejs项目

    使用cmd命令行创建nodejs项目 1)在DOS下cd 进入到你想要创建项目的路径. 2)mkdir sing (创建一个sing文件夹) 3)cd sing  4) npm init (初始化工程 ...

  8. c# 命令行下编译c#文件 // c# file类读写文件

    c# 命令行下编译c#文件 2010-03-01 15:02:14|  分类: c# 学习|字号 订阅     在 开始  ——>程序 ——>vstool中打开vs2008命令提示. 通过 ...

  9. Android系列之Android 命令行手动编译打包详解

    Android 命令行手动编译打包过程图 [详细步骤]: 1使用aapt生成R.java类文件:  例:  E:\androidDev\android-sdk-windows2.2\tools> ...

随机推荐

  1. Mathematica 和 MATLAB、Maple 并称为三大数学软件

    Mathematica是一款科学计算软件,很好地结合了数值和符号计算引擎.图形系统.编程语言.文本系统.和与其他应用程序的高级连接.很多功能在相应领域内处于世界领先地位,它也是使用最广泛的数学软件之一 ...

  2. 一.JDBC学习入门

    一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...

  3. JS文字球状放大效果

    在线演示 本地下载

  4. Notepad++搜索中的正则应用

    假设要查找文件中所有tppabs="*****" 类型的代码 tppabs="http://www.******.com/templates/Alen/Css/Main. ...

  5. @codeforces - 932G@ Palindrome Partition

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个字符串 s,求有多少种方案可将其划分成偶数个段 \(p_ ...

  6. C++之MD5加密(签名)

    md5.h : #include <stdio.h> #include <stdlib.h>#include <time.h> #include <strin ...

  7. Jmeter非命令行执行脚本

    这次我们可以清晰地看到每个线程的执行情况.        这里是我们使用非 GUI 模式运行测试脚本时可以使用的一些命令: -h 帮助 -> 打印出有用的信息并退出 -n 非 GUI 模式 -& ...

  8. @AGC037 - E@ Reversing and Concatenating

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个长度为 N 且只包含小写字母的字符串 S ,你可以执行 ...

  9. 17-2 orm单表操作和多表操作

    参考:https://www.cnblogs.com/liwenzhou/p/8660826.html 一  ORM单表操作 1 增删改查 1. 查询 1. 查所有 models.Publisher. ...

  10. Python两个字典键同值相加的几种方法

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/Jerry_1126/article/de ...