游戏微端的多渠道思路和简易的自动化打包工具 (2)

项目解决方案:WinForm.sln,主要代码如下:

public partial class Form1 : Form { public Form1() { InitializeComponent(); string channel = "default"; #if GooglePlay channel="google play"; #elif Samsung channel="sam sung store"; #elif AppStore channel="app store"; #endif this.textBox1.Text = channel; } }

假设当前要打包 googleplay渠道

msbuild /m WinForm.sln /t:Rebuild /p:Configuration=Debug /p:DefineConstants="GooglePlay"

假设当前要打包 AppStore渠道

msbuild /m WinForm.sln /t:Rebuild /p:Configuration=Debug /p:DefineConstants="AppStore"

/p:DefineConstants="AppStore" 指定宏

proj配置文件分析

*.proj (.net项目文件),本质上是一个xml文件,在build时根据这里面的参数进行build

<PropertyGroup Condition=" \'$(Configuration)|$(Platform)\' == \'Debug|AnyCPU\' "> <PlatformTarget>AnyCPU</PlatformTarget> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> <DefineConstants>TRACE;DEBUG;AppStore</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <Prefer32Bit>false</Prefer32Bit> </PropertyGroup> msbuild 文档资料

MSBuild 命令行参考 https://technet.microsoft.com/zh-cn/library/ms164311(v=vs.85).aspx

msbuild-msdn : https://msdn.microsoft.com/zh-cn/library/dd393574.aspx

可能遇到的问题

msbuild 不是内部或外部命令?

起因:家里的机器上同时安装VS2013 ,VS15(2016) 莫名出现msbuild不是内部或外部命令

解决办法:
C:\Program Files (x86)\MSBuild\12.0\Bin\ 添加到环境变量的 path

如果是vs2017 pro,我的msbuild路径在这儿:C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe

devenv 不是内部或外部命令?

解决办法:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ 添加到环境变量的path中

示例打包脚本

打包单个项目和打包多个项目的示例脚本
https://github.com/zhaoqingqing/blog_samplecode/blob/master/build-tools/build_donet_signle_csproj.bat
https://github.com/zhaoqingqing/blog_samplecode/blob/master/build-tools/build_donet_muilt_csproj.bat

msbuild打包脚本可参考
https://github.com/zhaoqingqing/blog_samplecode/blob/master/build-tools/msbuild-sample.cmd

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgfzw.html