WM有约(五):部署应用程序

WM有约(五):部署应用程序

 

Written by Allen Lee

 

创建安装包

创建一个新的项目,用来部署Windows Mobile应用程序的项目模板是Other Project Types\Setup and Deployment下的Smart Device CAB Project:

122308_1553_WM1.png

图 1

输入项目名称,然后单击OK完成项目的创建。部署项目创建好后,Visual Studio将会显示File System (Setup)选项卡:

122308_1553_WM2.png

图 2

右键单击Setup项目,然后单击Add菜单下的Project Output:

122308_1553_WM3.png

图 3

Add Project Output Group对话框将会打开,同时选中Primary output、Localized resources和Content Files:

122308_1553_WM4.png

图 4

其中,Primary output就是我们的应用程序主体,Content Files就是Options.xml,那么Localized resources是什么呢?因为Orientation Aware Control是通过资源文件来储存窗体的布局信息(例如控件的位置和大小等)的:

122308_1553_WM5.png

图 5

所以我们要一并把它部署到目标设备上。

接着,我希望在Windows Mobile的程序里显示这个应用程序的快捷方式,那么我得先添加一个Programs Folder:

122308_1553_WM6.png

图 6

选中左边的Programs Folder,右键单击右边空白处,并单击Create New Shortcut:

122308_1553_WM7.png

图 7

Select Item in Project对话框将会打开,选中里面Application Folder,然后单击OK:

122308_1553_WM8.png

图 8

对话框将会进一步显示Application Folder里面的内容,选中里面的Primary output from Alt (Active),然后单击OK关闭对话框:

122308_1553_WM9.png

图 9

此时,Programs Folder右边将会出现一个快捷方式,把这个快捷方式重命名为应用程序的名字就可以了:

122308_1553_WM10.png

图 10

最后,生成Setup项目,完成了!

 

安装和运行应用程序

把模拟器的共享文件夹设为Setup项目的输出文件夹:

122308_1553_WM11.png

图 11

这样,你就可以在模拟器里看到存储卡了:

122308_1553_WM12.png

图 12

运行安装程序,Windows Mobile将会问你把应用程序安装在设备里还是存储卡里:

122308_1553_WM13.png

图 13

这里,我选择安装在设备里,单击Install继续。安装完毕后,你将会在Programs里找到这个应用程序:

122308_1553_WM14.png

图 14

运行应用程序,哈哈,出错了:

122308_1553_WM15.png

图 15

还记得我们是怎样计算"下一次"的吗?

122308_1553_WM16.png

代码 1

由于程序第一次运行,所以m_PinnedDates集合里什么也没有,此时调用Last方法就会抛出异常。没事,改用LastOrDefault方法就好了(当然,相应的逻辑需要调整一下,否则就会看到"下一次"是个很怪的日期!),不过这里为了简单起见,我已经准备了一份有数据的PinnedDates.txt文件了,把这个替换应用程序自动生成的空白文件,然后再运行应用程序,这次就正常了:

122308_1553_WM17.png

图 16

122308_1553_WM18.png

图 17

什么?你问我什么时候把这个应用程序部署到我的手机上用?哎……

 

最后……

每个故事都会有结束的时候,我不知道应该为这个系列写点什么样的结语,不知道是否太久没有动笔的缘故,脑子似乎空荡荡的,今晚一直在循环播放周杰伦的《晴天》,或许,允许我用里面的几句歌词来做结语,也好掩饰一下我的江郎才尽:

从前从前有个人爱你很久
但偏偏风渐渐把距离吹得好远
好不容易又能再多爱一天
但故事的最后你好像还是说了拜拜

转载于:https://www.cnblogs.com/allenlooplee/archive/2008/12/24/1360935.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“ 我亦想望,如池鱼悠悠 ... “

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 // 闹钟响了,起床,洗漱完毕,背上电脑出门,到公司打卡 8:20 。 " 我亦想…

C++之静态成员变量和静态成员函数

静态成员变量 关键字 static 可以用于说明一个类的成员, 静态成员提供了一个同类对象的共享机制 把一个类的成员说明为 static 时,这个类无论有多少个对象被创建,这些对象共享这个 static 成员 静态成员局部于类,它不是对象成…

熄火/死火

定义 当反应器正在以显著的反应速率进行操作时,若降低进料入口的温度,使它达到多重态区域的下限,反应速度会突然大幅度下降,反应基本上停止。这个现象称为熄灭。相应的入口温度称为熄灭点。一般指的是汽车熄火。发生原因 有…

H3C 以太网集线器

转载于:https://www.cnblogs.com/fanweisheng/p/11169349.html

解决: WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 问题描述:阿里云服务器 磁盘初始化之后用 git-bash ssh rootxx.xx.xx.xx 方式登陆服务器,报错如下。 WARNIN…

C++之面向对象模型

C对象模型可以概括为以下2部分: 1. 语言中直接支持面向对象程序设计的部分,主要涉及如构造函数、析构函数、虚函数、继承(单继承、多继承、虚继承)、多态等等。 2. 对于各种支持的底层实现机制。 在c语言中,“数据”…

netty接收大文件的方法

参考:http://blog.csdn.net/linuu/article/details/51371595 https://www.jianshu.com/p/a0a51fd79f62 netty默认是只能接收1024个字节,但是我们要传输大文件怎么办? 上代码: 改之后服务端: package server;import io.netty.boots…

制动失灵

定义 制动过程中,由于制动器某些零部件的损坏或发生故障,使运动部件(或运动机械)不能保持停止状态或不能按要求停止运动的现象。制动失灵的原因 制动失灵的关键在于制动系统无法对汽车施加足够的制动力,包括制动液管路液位不足或进入…

webpack 入门,说一下那些不入流的知识点、module.exports{ } 中配置说明

先说说Vue-Cli(Vue项目脚手架) 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 关于它能干什么,就不再赘述了,我们主要谈谈生成的与webp…

myeclipse2013 jad反编译插件安装

https://blog.csdn.net/zhenshixian88/article/details/26454319 1. 下载插件工具 http://download.csdn.net/detail/zwj_lmss/6697259 2. 里面有两个文件 1).JAD.EXE随便找个地方丢进去(我是随便放哪边的,不过有的人有问题,最后放在了jdk的bin下面.可能他们没有配置环境变量);…

转向失控

定义 转向失控就是方向盘不管用了,打方向盘,但是前轮不动,不受方向盘控制。转向失控的原因 转向失控可能因为车辆过快、酒驾、疲劳、车况不佳、雨雪路滑等,还有转向机构中有零部件脱落、损坏、卡滞时,也会使转向机…

this 的指向问题

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 this的指向已经是一个老生常谈的问题,每逢面试都要去复习复习,近来巩固js的基础,决心彻底掌握这个知…

C++之全局函数和成员函数的转换

全局函数和成员函数 把全局函数转化成成员函数,通过this指针隐藏左操作数 Test add(Test &t1, Test &t2)》Test add(Test &t2) 把成员函数转换成全局函数,多了一个参数 void printAB()》void printAB(Test *pthis) 函数返回元素和返回引…

HDU 3916 Sequence Decomposition 【贪心】

这道题目的题意就是使用题目中所给的Gate 函数,模拟出输入的结果 当然我们分析的时候可以倒着来,就是拿输入去减 每次Gate 函数都会有一个有效范围 这道题目求的就是,找出一种模拟方法,使得最小的有效范围最大化。 是一道【贪心】…

爆胎

定义 即轮胎爆裂。车辆的缺气(轮胎胎压低于标准胎压)行驶时,随着胎压的下降,轮胎与地面的摩擦成倍增加,胎温急剧升高,轮胎变软,强度急剧下降。这种情况下,如果车辆高速行驶,就可能导致爆胎。…

不要再问我跨域的问题了

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 跨域这两个字就像一块狗皮膏药一样黏在每一个前端开发者身上,无论你在工作上或者面试中无可避免会遇到这个问题。为了应付面…

SSM集合

SSM集成 1. Spring和各个框架的整合 Spring目前是JavaWeb开发中最终的框架,提供一站式服务,可以其他各个框架整合集成 Spring整合方案 1.1. SSH ssh是早期的一种整合方案 Struts2 : Web层框架 Spring : 容器框架 Hibernate &#…

浅谈 CSRF 攻击方式

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造&a…

C++之运算符重载(上)

1、概念 所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能,因此,一个函数名就可以用来代表不同功能的函数,也就是”一名多用”。 运算符也可以重载。实际上,我们…

手刹

定义 考手刹的专业称呼是辅助制动器,与制动器的原理不同,其是采用钢丝拉线连接到后制动蹄上,以对车子进行制动。作用 用于平地斜坡停车时制动,防止车子在无人状态下自动滑跑,逼免发生交通事故。工作原理 其原…