安装器打包思路

  1. 集合安装器+配置文件
  2. vs打包配置(xml)
  3. 配置消息写在代码中,打包时替换代码文件或动态变化代码文件

思路1. 安装器和config合并

通过ilmerge合并文件

只可以合并.net assemblies ,不可能集合txt等非.net类型文件

http://www.microsoft.com/en-us/download/details.aspx?id=17630

https://ilmergegui.codeplex.com/

经过配备文件创设纯能源dll

https://msdn.microsoft.com/zh-cn/library/24b2tcy0%28VS.80%29.aspx?f=255&MSPPError=-2147217396

此格局觉得太阿倒持了,所以决定动用msbuild来打包不相同的安装器

页游微端的多少个难题及解答

msbuild 打包

何以要做多平台/渠道打包成效?

本身司U3D开发的巨型3DMMO福特ExplorerPG网页游戏,先后在腾讯,49游上线,近来内将和越来越多渠道和平台湾同胞联谊会运,包涵多玩(yy),37玩,爱乐玩等。

微端登录和充值的流程

  1. 微端登录器 ——> 登录渠道——>回调游戏服务器 ——>运行并跻身娱乐
  2. 娱乐内充值——>
    跳到渠道的充值接口——>回调游戏服务器——>向游戏发放道具

1. 代理商和谋划提议的要求

  • 腾讯的游艺版本是1.1
  • 多玩的版本是1.2
  • 49游的版本是1.3

所以游戏财富必要进行分渠道管理,代码也拓展分层版本管理。

2. 不比渠道/平台的微端有何分别?

  • 腾讯渠道:ab财富+代码,微端登录页QQ空间,支付是跳转到广点通
  • 49游渠道:ab财富+代码,微端登录页平台分配的娱乐入口,支付是跳转到49游充值
  • 多玩渠道:ab财富+代码,微端登录页yy登录,支付是跳转到yy游戏充值中央
  • 爱 乐 玩
    :ab能源+代码,微端登录页平台分配的游乐入口,支付是跳转到爱乐玩充值

3. 多平台要做的事

从上述第22中学得以见见,分歧的水道对应不一致的微端以应付差异化,近来以来财富路径,代码,登录,充值链接等部分布置音信上的异样,当然每种渠道微端的外观也说不定有异样

微端的技艺分析请阅读:[http://www.cnblogs.com/zhaoqingqing/p/5671398.html\](http://www.cnblogs.com/zhaoqingqing/p/5671398.html)

怎么微端不是内嵌网页而是客户端游戏?

其一难题问的好!

万一是内嵌网页,那么玩家的照旧要已安装unity web
player才能跻身娱乐(网页插件类似flash)

客户端游戏无需安装web
player插件,且端游能够行使更多系统性子,比如二十四线程,保存财富到地面等

以身作则打包脚本

包装单个项目和包裹三个类型的演示脚本
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

思路2. msbuild

在 Visual Studio 中营造应用程序的二种格局:
https://msdn.microsoft.com/zh-cn/library/cyz1h6zd.aspx

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

msbuild + xml (project.csproj)

思路1.单母包+安装器+配置表

微端只打包一回,安装器打包数十次,每一种平台/渠道有友好的隶属配置文件

何以识别微端的水道?

微端运营时读取目录中的配置文件识别当前平台,并将参数字传送递给游戏客户端

什么公布差别渠道的微端?

  • A渠道 = 母包 + A渠道布局文件 + A渠道安装器

  • B渠道 = 母包 + B渠道配备文件 + B渠道安装器

  • N渠道 = 母包 + N渠道配备文件 + N渠道安装器

微端母包有那3个文件?

  • fileupdate : 检查更新程序
  • json,launcher: 游戏登录器/运维器
  • uninst : 卸载程序
  • unity pc game : unity
    导出的windows程序,包罗游戏的起首能源及布置文件

越多微端的技能分析请阅读:http://www.cnblogs.com/zhaoqingqing/p/5671398.html

条件编写翻译符号(预编写翻译宏)

品种消除方案: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" 指定宏

兴许遭逢的难题

msbuild 不是里面或外部命令?

缘起:家里的机械上同时安装VS二零一一 ,VS15(2014)
莫名出现msbuild不是内部或外部命令

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

devenv 不是中间或外部命令?

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

品种设定

包装工具结合项指标布局音信,实行多渠道打包,项目工程目录如下

  • 微端母包 源代码
  • 微端安装器 源代码
  • 次第平台/渠道 配置文件 /channel_configs 里面包车型客车文本如下
  • 49you.json
  • 2lewan.json
  • duowan.json
  • 37wan.json

  • 卷入后的沟渠文件存放地点 /channel_packages

  • /49you
  • /2lewan
  • /duowan
  • /37wan

达成步骤

协调编写简易的多渠道打包工具,打包工具关键意义及界面如下

  • 主界面:自动编写翻译母包+安装器
  • 渠道选用:从列表选拔渠道,程序自动验证渠道配备音信并提供预览
  • 包装结果:记录并浮现打包结果

思路2.打频仍包 宏定义

把渠道的陈设新闻写在代码中,通过宏定义区分差异的水渠,但须求打包数次

         string loginURL = "";
#if you49
        loginURL = http://ylxxz.49you.com/client_login.html
#elif ewan21
        loginURL = http://www.2lewan.com/client/ylxxz
#elif duowan
        loginURL = http://www.duowan.com/ylxxz
#endif

怎么分辨微端的水道?

答:微端运行时,通过代码中的宏定义识别识别当前平台,并将参数传递给游戏客户端

什么样宣布区别渠道的微端?

  • A渠道 = 打包A渠道包
  • A渠道 = 打包B渠道包
  • N渠道 = 打包N渠道包

多渠道思路分析

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

何以要开发娱乐微游?

综上说述,谷歌大佬的Chrome浏览器在二零一六年时停下援助NPAPI,unity3d引擎的web
player也是NPAPI的局面,而作者司的3D网页游戏便是利用unity3d引擎的web
player,所以在Chrome 45及之后版本将开辟我们的游乐。

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>

自小编的缓解方案

透过考虑后作者利用思路1母包+配置表
(注意点:针对不一样的水道,安装器供给再行打包)

微端版是导出windows平台而不是web player?

就是如此,下载微端玩的难为导出game.exe+game_Data而不是webplayer.unity3d+html,简单题以来:
通过下载微端玩游戏其实是客户端游戏(端游),而通过网页入口玩游戏照旧unity
web player.

相关文章

网站地图xml地图