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. Promise对象的含义和基本用法

    1.Promise的含义 Promise是异步编程的一种解决方案,比传统的解决方案(回调函数和事件)更合理更强大. 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件 (通常是一 ...

  2. LDAP落地实战(三):GitLab集成OpenLDAP认证

    上一篇文章介绍了svn集成OpenLDAP认证,版本控制除了svn外,git目前也被越来越多的开发者所喜爱,本文将介绍GitLab如何集成openldap实现账号认证 GitLab集成OpenLDAP ...

  3. ibatis(sqlmap)中 #与$的使用区别

    在sqlmap文件中不使用“#VALUE#”来原样(参数对应什么类型,就当什么类型,比如拼凑的内容为string则自动加上了‘’)读取,而是$VALUE$方式来读取,即不加任何的东西,比如单引号啥的, ...

  4. SpringBoot相关配置

    8.1 配置 Spring MVC的配置是通过继承WebMvcConfigurerAdapter类并重载其方法实现的; 前几个教程已做了得配置包括 01点睛Spring MVC 4.1-搭建环境 配置 ...

  5. 区别js中name与id的简单方法

    举个简单的例子: <form name="form1"> 用户名:<input type=text name="username" id=&q ...

  6. [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)

    本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类  —— 微信小程序实战商城 ...

  7. 关于webapi加入Route引用出现问题的解决方案

    首先在程序包管理器控制台运行安装MVC5.0,因为[Route("/api/..")]只会存在于MVC5.0中间,运行  Install-Package Microsoft.Asp ...

  8. IE浏览器版本的判断

    var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 && userAgent.indexOf(; //判断是否IE< ...

  9. [转] 如何应用设计模式设计你的足球引擎(三和四)----Design Football Game(Part III and IV)

    原文地址:http://www.codeproject.com/KB/cpp/applyingpatterns2.aspx 作者:An 'OOP' Madhusudanan 译者:赖勇浩(http:/ ...

  10. [PHP] 重回基础(date函数和strtotime函数)

    date():格式化一个本地时间或者日期,当前时间 2016年5月13日 15:19:49 使用函数date(),输出当前是月份中的第几天,参数:String类型 d 例如:echo date(&qu ...