1,解决方案—添加—新建项目—其他项目类型—安装和部署—安装项目,输入名称Setup,点“确定”

2,添加主输出:单击左侧“应用程序文件夹”,右侧右键—添加—项目输出-主输出-确定。

3,添加开始程序中的文件夹:右击左侧“用户的程序菜单”—添加—文件夹,自己设置名称。

4,添加开始程序中和桌面的主程序快捷方式:左侧单击刚新建的文件夹--右侧右键—创建新的快捷方式--选择“应用程序文件夹---主输出--“确定”    左侧单击用户桌面--右侧右键—创建新的快捷方式---应用程序文件夹---主输出---确定

5,设置程序图标:先把图标文件放到你的程序目录下---单击左侧“应用程序文件夹”,---空白处右键—添加—文件---图标文件。然后左侧“用户的程序菜单下”的文件夹---单击刚才新建的程序快捷方式---属性窗口---Icon—浏览—图标文件---确定。同理添加“用户桌面”里快捷方式的图标。

6,添加卸载功能:在c:\windows\system32文件夹下找到msiexec.exe文件,复制到程序目录下,然后按照图标的方法添加到“应用程序文件夹”中,然后像添加主程序快捷方式一样在开始程序中添加这个卸载的快捷方式,名字可以自己设置。然后在“解决方案管理器”中单击“Setup”,也就是你的安装项目,在属性窗口找到“ProductCode”,复制它后面的值,然后单击刚新建的卸载的快捷方式,属性中找到“Arguments”,在后面的框里输入“/x”再加上刚才复制的值就行了。

7,在Setup属性中可以自己设置“ProductName”和“Title”的内容;

8,修改安装默认路径:单击左侧“应用程序文件夹”,属性中“DefaultLocation”把中间的“[manufacturer]”删除,否则安装路径中会出现你自己的用户名。

9,添加系统必备:右击setup—属性—系统必备按钮,在“指定系统必备组件的安装位置”中选择“从与我的应用程序相同的位置下载系统必备组件”,确定。

10,生成安装项目:右击“Setup”—生成,稍等会儿,OK,大功告成了!然后到你的项目文件夹中可以看到“Setup”文件夹,在“Debug”下就可以看到安装文件了!

一、应用程序文件夹操作

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在哪里找呢?请记住,这里是两个系统,一个是你要打包的系统,另一个是控制台程序,所以啊,这点,要理解!去你要打包的项目里去找

看到了吧,就是它了!把它拷贝过来,放在控制台程序里生成一下,上面UNIT里所导入的文件就是现在生成的文件了!!

转:winform 安装包(很详细)的更多相关文章

  1. Winform安装包出现无法访问网络位置

    1.原因:安装包的安装路径出现了问题 2.如下图:错误路径 3.如下图:正确路径

  2. npm安装包很慢

    每次安装时: 可以通过指定 --registry,指向国内镜像服务器地址来加快安装速度. npm install -gd express --registry=http://registry.npm. ...

  3. 修改winform安装包写日志文件权限

    1.如果程序有写入文件的功能要添加该文件 并配置该属性 改成这个即可

  4. 如何给自己的Python项目制作安装包

    Packaging Python Projects¶ 本教程将指导您如何打包一个简单的Python项目.它将向您展示如何添加必要的文件和结构来创建包,如何构建包以及如何将其上载到Python包索引. ...

  5. Ubuntu菜鸟入门(二)—— apt认知,且完善语言安装包

    一  语言安装包安装 1  原因 虽然安装的中文版,但是由于安装包很小,所以汉化的不够完全,所以要安装后,再下载语言包进行安装 2  方法 二  apt--软件包管理器 1   软件源 (1) 介绍 ...

  6. C#软件winform程序安装包制作及卸载程序制作

    使用vs2010 winform程序开发的软件的人比较多,程序的开发是为了在不同的人不同的机器使用,为了使不同的机器能使用该软件就需要在制作程序安装包,安装包里必须包含该软件运行所选的所有环境,下面就 ...

  7. 基于DevExpress的Winform程序安装包的制作

    在我们做系统开发的时候,都会面临一个安装包制作的问题,如何把我们做好的系统,通过安装包工具整合成一个安装包给客户进行安装.安装包的优势就是一步步安装就可以了,不用复制一大堆文件给客户,还怕缺少那个文件 ...

  8. winform打包发布安装包详解..

    winform打包发布安装包详解..   使用VS 自带的打包工具,制作winform安装项目 开发环境:VS 2008 Access 操作系统:Windows XP 开发语言:C# 项目名称:**管 ...

  9. 使用VS2015打包winform程序安装包简单方法(不需要InstallShield)

    转载自:   DGPLM博客 使用VS2015打包winform程序安装包简单方法(不需要InstallShield)

随机推荐

  1. MySQL的Sleep进程占用大量连接解决方法

    第一部分为产生大量sleep进程的原理及对应解决方法第二部分为设置wait_timeout值,有效减少sleep进程 ========================================= ...

  2. tomcat启动(一)startup.bat|catalina.bat分析

    环境:windows X64位 Tomcat8.0.47 bootstrap.jar是tomcat的内核 开始位置 startup.bat 查看文本 具体的批处理脚本语法可以查看我整理的文章 http ...

  3. 解释mysql 语句 ——解释CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

    在我们创建mysql数据库的时候我们经常会用到这句SQL:CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ ...

  4. php使用date()函数时,提示的警告

    转载:http://www.shangxueba.com/jingyan/121682.html 在用PHP5.3以上的PHP版本时,只要是涉及时间的会报一个: "PHP Warning: ...

  5. 面试题21:如何判断二叉树是搜索二叉树BST?

    Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as ...

  6. readtimeout

    请求头去掉content-length,未找到明确原因.

  7. babel使用入门以及使用webpack+babel来"编译"你的JS代码

    Babel是一个广泛使用的转码器,可以将ES6代码转为ES5,从而在现有的环境中执行. 这是一个开端,以后遇到问题,也会持续记录. 一.babel配置 官网有更详细的配置教程:https://www. ...

  8. .net Core学习笔记之MemoryCache

    .NET Core支持多种不同的缓存,其中包括MemoryCache,它表示存储在Web服务器内存中的缓存:     内存中的缓存存储任何对象; 分布式缓存界面仅限于byte[] 1:在.net co ...

  9. C# 的逻辑运算

    &.^.!和|操作符称为逻辑操作符,用逻辑操作符把运算对象连接起来符合C#语法的式子称为逻辑表达式.逻辑 操作符“!”和“^”只作用于其后的操作数,故称为一元操作符.而“&&” ...

  10. 线程5--GCD简介

    /******************************************************/  同步函数  (1)并发队列:不会开线程  (2)串行队列:不会开线程  异步函数   ...