vs2017 msbuild命令编译项目文件
来源:互联网 发布:mac版pscc2017破解补丁 编辑:程序博客网 时间:2024/06/06 03:06
最近研究使用发布机发布项目,固然需要使用命令行来编译项目文件,此次的编译使用的是msbuild,也是当下官方推荐;当然还有devenv;
另外说明:本次的实验使用的为Visual Studio 2017
相关参考
- MSDN : MSBuild使用及一些说明
指令目录说明
在vs2017之前,msbuild都是跟随.net framework一起发布,在vs2017后需要兼容.net core的编译,所以与vs打包整合了,如果用的是visual studio 2017或者使用了c# 5.0中的新特性,建议使用msbuild V15.0的版本来编译;V15.0的目录也是在visual studio的安装目录下有单独的msbuild目录。
指令语法
指令的使用语法
MSBuild.exe [选项] [项目文件 | 目录]
常用开关
的以上常用的指令中用的最多的为前两个 /target:和/property:,target用来指定生成项目的目标等;而/property则是一相相当重要的开关属性了下面来特别说明它是如何重要的。
开关讲解
/Property:< n >= < v >
首先来看我们的项目文件.csproj文件中的一个片段
<PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> <DebugSymbols>true</DebugSymbols> <OutputPath>bin\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <DebugType>full</DebugType> <PlatformTarget>x64</PlatformTarget> <ErrorReport>prompt</ErrorReport> <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> <OutputPath>bin\</OutputPath> <DefineConstants>TRACE</DefineConstants> <Optimize>true</Optimize> <DebugType>pdbonly</DebugType> <PlatformTarget>x64</PlatformTarget> <ErrorReport>prompt</ErrorReport> <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" /> <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" /> </Target>
示例中我们可以看到有请多的宏定义$(MSBuildBinPath)、$(VSToolsPath)等,而这些宏是可以使用/property来进行定义的;也就是说.csproj文件中的宏都可以使用/property来进行定义;下面来看一个例子:
命令如下:
msbuild d:\Projects\Web\Web.csproj /t:ResolveReferences;Compile /t:_WPPCopyWebApplication /p:Configuration=Release /p:WebProjectOutputDir=d:\website
在项目中使用了生成事件,copy了一个文件;使用了$(SolutionDir)的宏指令
执行后的错误提示:
解决办法:
添加 /p 开关如下 :/p:SolutionDir=’指定的路经’ 这样问题就解决了
扩展问题:如果自定义一些宏了,可以使用/property来定义吗?
结语
好了,先写这么多,很久没有写blog了,感觉写出来有头没尾,草草的结个尾
- vs2017 msbuild命令编译项目文件
- MSBuild 命令行编译项目且不包含pdb文件
- MSBuild命令行编译Xamarin 项目
- Visual Studio / MSBuild - 编译时根据编译条件动态引用项目及复制重命名编译输出文件
- 演练:从头开始创建 MSBuild 项目文件
- 从零开始构建MSBuild C#项目文件
- VS2017新建项目自动添加头文件
- Jenkins配置MSBuild编译.net4.6的项目
- 使用VS2017的跨平台项目对muduo进行编译
- 使用make命令编译项目文件入门
- 使用make命令编译项目文件入门
- 使用make命令编译项目文件入门
- 使用make命令编译项目文件入门
- 使用make命令编译项目文件入门
- 使用make命令编译项目文件入门
- Visual Studio编译:MSBuild
- MSBuild.exe 编译
- 用VS2017上传项目到码云gitee.com和基本命令
- MySQL日期 字符串 时间戳互转
- javaweb获取项目目录的几种方法
- 指针与函数
- python爬虫爬去贴吧中的所有图片
- 各个JSON技术的比较(Jackson,Gson,Fastjson)的对比
- vs2017 msbuild命令编译项目文件
- IT团队之非正式沟通
- Thymeleaf教程 (五) Thymeleaf标准表达式语法(下)
- 【特征检测】Harr-like特征算法
- Android编程权威指南(第2版)—第15章挑战练习
- Ubuntu10下Apache-2.2安装
- java读取某个文件夹下所有文件与文件夹
- Python模拟登陆万能法-微博|知乎
- div模拟textarea文本域轻松实现高度自适应