热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

winFrom制作安装包

转载地址:http:www.cnblogs.comshenqiboyarchive201203202407694.htmlwinFrom打包一、应用程序文件夹操作1、新建一个安装项目

转载地址: http://www.cnblogs.com/shenqiboy/archive/2012/03/20/2407694.html

winFrom打包

一、应用程序文件夹操作

1、新建一个安装项目,起名“测试打包”

这里要记住路径了,不然,打完了找不着安装包在哪里,可就说不过去了,呵呵!

2、这里就会出现三个文件夹,不用多说一看就明白意思,点“应用程序文件夹-->添加-->文件夹

这里的作用就是好管理,重启一下名字,这里我就叫它“测试打包系统”

3、在“测试打包系统”文件夹上右键-->添加-->项目输出

下一步:添加主输出

一般这个就够了,当然你还有别的资源的话就要添加上去了!

4、接下来在“应用程序文件夹”下依些建几个文件夹,我建了3个

Images里我放的是图片,2个ICO和1个BMP,后面会用到!

Unit放置卸载的文件,这里你记住有这么回事就行了,下面专门会讲这个文件是怎么来的!

最下面的一个就不用多说了,上面操作过了,放了一个主输出文件!

到这里一个简单的打包项目已完成了,呵呵,右键生成一下,在项目目录中找着安装文件就可以运行安装的用了!

但是这样的安装包,你安装完一不小心还找不着安装在哪里去了,呵,因为这样只有在安装文件夹里有东东,而我们所熟悉的开始菜单和桌面上没东西啊!不方便,那就给加上去吧!

二、开始菜单-->程序-->里添加内容操作

1、点“用户的“程序”菜单”,新建一个文件夹!步骤和前面一样,不细说!

我起名叫“测试打包系统”

2、在中间的桌口中(上图的名称下面部分位置啊),右键-->创建新的快捷方式,出现下面的界面

选择“应用程序文件夹”里面的,也就是我们添加的主输出文件!

3、更改新添加"快捷方式的属性"

看到了吧,这里我更改了一下name和Icon,更改Icon,看到上图中的浏览了吧,打着前面Images下面的ICO文件就可以了!

4、用上面同样的方式在建一个快捷方式,指向前面添加的Unit文件夹里的文件!同样改一下属性!

看到了吧,我里面有2个快捷方式!

这样就OK了!安装完后开始菜单中就会出现上面添加的两个快捷方式!

三、用户桌面添加内容的操作

1、在文件夹中间窗口中添加快捷方式,指向“应用程序文件夹”里的主输出,然后更改一下属性就OK了!

这样安装完成后桌面就会出现一个快速启动!

到这里一个安装和部署项目也就差不多了,但是吗,离完美还差的远呢,把我现在掌握的就先写出来吧

四、自定义用户界面

1、打开用户界面

2、这里可以设置已有窗体的属性和新增窗体

设置窗体属性

比如这里可以设置一下BannerBitmap,安装窗口上面的图片,方法和前面的ICO文件一样,浏览去找Images下面的Bmp文件即可!

就是这样的效果,哈哈,效果差了点啊!

可以根据需要来新增窗口,比如密码啊,等等

就是上面的这个窗口

五、卸载程序怎么打包上去?

我试了好几种方面都不太好使,可能是没理解!最后用了这一种方法,感觉还不错!

1、新建一个控制台程序

2、看代码

Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace UninStall
{
     class Program
     {
         static void Main(string[] args)
         {
             string sysroot = System.Environment.SystemDirectory;
             System.Diagnostics.Process.Start(sysroot + "//msiexec.exe ", "/x {522B529D-8A62-432D-962F-D0CFF826775E} /qr");
         }
     }
}
鼠标左键单击项目名称,记住是左键单击,然后点击属性标签 复制productcode到上述控制台蓝色productcode即可

另类卸载文件部署

用msi来实现了,操作方法如下: 

在添加你的应用程序项目的时候,多添加一个msiexec.exe进去,这个文件在c:\windows\system32文件夹下,添加进去以后,为了让他更像个卸载程序,把他的名字改成"Uninstall.exe",当然这个关系不大,改不改都行。

然后创建一个快捷方式,放到"开始-程序"中,接下来我们要做的就是查找这个部署项目的ProductCode了,鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属性,这个区别很大,这时你就可以看到ProductCode了。

然后打开你创建的那个快捷方式的属性对话框,在Aguements属性中输入"/x {ProductCode}",好了,然后点击"生成解决方案"即可生成带有卸载功能的安装程序了。


 
 

推荐阅读
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
author-avatar
手机用户2502860763
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有