1:新建安装部署项目
打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图)
此主题相关图片如下:
2:安装向导
关闭后打开安装向导,点击下一步,或者直接点击完成.
3:开始制作
安装向导完成后即可进入项目文件夹: 双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来.
然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的"用户的´程序´菜单"和"用户桌面"中.
这样安装程序安装安装完成后会在 "开始->所有程序"和"桌面"上生成程序的快捷方式.
然后右击左边的"应用程序文件夹"打开属性对话框:
将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉,
不然的话做好的安装程序默认安装目录会是"c:\programm file\你的用户名\安装解决方案名称";
然后打开解决方案管理器,右击你的解决方案名称,选择属性:
在打开的属性页中,选择"系统必备",
在打开的系统必备页中,选中如下中的选择项,这个很重要!!!!!1!!!!!
选上以后,在生成的安装文件包中包含.netframework组件.(这个选项默认是没有选中的)
好了,这样就完成99%了,然后点击"生成->生成解决方案",哈,生成成功!
4:制作完成
现在打开解决方案文件夹下的debug文件夹,就可以看到生成的安装文件了.
【续】关于"卸载"功能的添加 上面的文章只介绍了简单的生成安装的方法,
但是在vs.net2005下并没有直接生成卸载程序的功能, 所以我们只好用msi来实现了, 原理我就不讲了,网上一搜一堆,我只讲操作,
【1】:在添加你的应用程序项目的时候,多添加一个msiexec.exe进去,
这个文件在c:\windows\system32文件夹下,
添加进去以后,为了让他更像个卸载程序,把他的名字改成"Uninstall.exe",
当然这个关系不大,改不改都行的. 然后给他创建一个快捷方式,放到桌面或者"开始-程序"中,
我选择放在了开始菜单中,然后下面我们要的做的就是查找这个部署项目的ProductCode了,
鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性, 这个区别很大,这时你就可以看到ProductCode了,
然后打开你创建的那个快捷方式的属性对话框, 在Aguements属性中输入"/x {ProductCode}",
好了,然后点击"生成解决方案"即可生成带有卸载功能的安装程序了.
最近在做一个cs的项目,项目已经完成,后来发现不兼容windows7,经过一番整改,终于大功落成。现将心得体会写在这里。
首先读取注册表要给用户管理员得权限。exe在Vista或Win7下不以管理员权限运行,会被UAC(用户帐户控制)阻止访问系统某些功能,如修改注册表操作等;如何让exe以管理员权限运行呢,方法有两种,一个是直接修改exe属性;另一个是在程序中加入MANIFEST资源,下面分别介绍。
1. 直接修改exe属性:
1) 右击“exe”,在弹出的菜单中选择“属性”,出现的界面如下图:
2) 选择“兼容性”项,并勾选“以管理员身份运行此程序”项即可。
2. 在程序中加入MANIFEST资源 C#:
? 打开Vs2008或vs2010工程,看在Properties下是否有app.manifest这个文件;如没有,右击工程在菜单中选择“属性”,出现界面如下:
? 选中“安全性”,在界面中勾选“启用ClickOnce安全设置”后,在Properties下就有自动生成app.manifest文件。
打开app.manifest文件,在<security>下加入
<requestedPrivileges>//删掉xmlns="urn:schemas-microsoft-com:asm.v3"
<requestedExecutionLevel level="requireAdministrator" cess="false"/>
</requestedPrivileges>,重新编译即可,
WP7模拟器目前提供了比较完善的功能,除了上次我们介绍的 WP7模拟器如何截图为800x480分辨率的 外,今天Zune123再给大家演示下Windows Phone 7模拟器提供的加速感应器和GPS定位模拟功能。
一、如何调出WP7 Emulator的附件工具呢?
在模拟器的右上角鼠标停留1秒即可看到一个控制栏,选择底部的两个向右箭头如下图:

这样可以看到Additional Tools(附加工具) 界面,其中Accelerometer(加速计) 可以模拟WP7手机的方向,摇晃等动作如图:

切换到Location(定位) 标签,WP7模拟器开可以模拟KML这样的坐标路径,帮助LBS应用实现模拟定位的功能,如图

目前WP7 Mango SDK已经正式发布了,如何判断自己的SDK版本呢? 微软的产品一般经历CTP社区预览版或Milestone版,接下来是Beta外部测试版,RC预发布版和RTM正式版,一般RC和RTM的变化不是很大,一般不用更新,查看的方法只要在Visual Studio 2010 Express for Windows Phone中单击Help菜单,找到最底部的About,如图
、
接下来显示的Installed products中会有显示,比如下面是 Windows Phone SDK 7.1 RC预发布版,ENU代表英文版,如图
一、开启/关闭电脑键盘输入 WP7模拟器默认状态只能通过模拟出来的QWERTY键盘输入,用鼠标一个一个点太慢了,Zune123总结了开启/关闭电脑键盘输入的方法,详细操作步骤如下: 首先打开模拟器,在需要输入文字的地方点击鼠标,这时按下电脑键盘的PageUp键即可开启键盘输入,同时虚拟键盘将会自动关闭。如果需要关闭电脑键盘输入开启虚拟键盘,只要再用同样的方法按PageDown键即可。
二、其他快捷键 F1键:模拟WP7手机返回键,长按会弹出最近运行的任务界面。 F2键:模拟WP7手机主页键,长按可以快捷启动语音识别,第一次运行需要点“接受”。 F3键:模拟WP7手机搜索键,第一次运行需要点“接受”。 F7键:模拟WP7手机快门键,按一下可以启动模拟器相机功能,再按一下可以模拟拍照。 F9键:模拟WP7手机的音量增大键。 F10键:模拟WP7手机的音量减小键。 F11键:音乐播放控制:播放/停止,长按可以快捷启动语音识别功能。 Windows键:功能同F2键
//键盘键值
private void ChangeKey(TextBox textBox,System.Windows.Forms.KeyEventArgs e,int i)
{
if((e.KeyValue>=32 && e.KeyValue<=40) || (e.KeyValue>=45 && e.KeyValue<=46) || (e.KeyValue>=48 && e.KeyValue<=57) || (e.KeyValue>=65 && e.KeyValue<=90) ||
(e.KeyValue>=96 && e.KeyValue<=107) || (e.KeyValue>=109 && e.KeyValue<=111) || (e.KeyValue>=186 && e.KeyValue<=192) ||
(e.KeyValue>=219 && e.KeyValue<=222))//键盘键值
{
textBox.Text=e.KeyCode.ToString();
this.keys[i]=e.KeyCode;
}
}
//将字符串转换为相对应的键
Keys keys=new Keys[5];
for(int i=0;i<nodes[2].ChildNodes.Count;i++)
{
KeysConverter kc=new KeysConverter();
this.keys[i]=(Keys)(kc.ConvertFromString(nodes[2].ChildNodes[i].InnerText));
}
tabel的重心应该是产生数据列,而ul/ol则是在产生数据级上,所以,一般对于单列多行的数据,且扩展的趋势是产生级的时候,使用ul/ol,扩展的趋势是列的时候,使用TABEL。
用ul/ol实现两列,只要增加个SPAN,三列给SPAN增加CLASS,还能四列
<ol>
<li>d1<ol><li>a</li></ol></li>
<li>d2<ol><li>b</li></ol></li>
<li>d3<ol><li>c</li></ol></li>
</ol>//分级
<ol>
<li>d1<span><li>a</li></span></li>
<li>d2<span><li>b</li></span></li>
<li>d3<span><li>c</li></span></li>
</ol>//一行标题,一行数据
<ol>
<li>d1<span>a</span></li>
<li>d2<span>b</span></li>
<li>d3<span>c</span></li>
</ol>两列
今天使用SqlDataReader读取数据的时候,不能用,而记取全部数据的时候就能用,编辑一条的时候就不行,晕呀!!出现“在没有任何数据时进行无效的读取尝试”错误。
DataReader是只向下读取信息的,一条条读的。
加上判断即可:
if (reader.read())
{
maxid = Convert.ToInt32(read[0]);
}