(转)winform安装项目、安装包的制作、部署
本文转载自:http://zhan.renren.com/cxymst?gid=3602888498037535727&from=post&checked=true
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安装项目、安装包的制作、部署的更多相关文章
- 基于DevExpress的Winform程序安装包的制作
在我们做系统开发的时候,都会面临一个安装包制作的问题,如何把我们做好的系统,通过安装包工具整合成一个安装包给客户进行安装.安装包的优势就是一步步安装就可以了,不用复制一大堆文件给客户,还怕缺少那个文件 ...
- winform打包发布安装包详解..
winform打包发布安装包详解.. 使用VS 自带的打包工具,制作winform安装项目 开发环境:VS 2008 Access 操作系统:Windows XP 开发语言:C# 项目名称:**管 ...
- pip安装 Tensorflow 安装包
最简单的 Tensorflow 的安装方法是在 pip 一键式安装官方预编译好的包 pip install tensorflow通常这种预编译的包的编译参数选择是为了最大兼容性而不是为了最优性能,导致 ...
- arcgis安装msi安装包提示"在未标记为正在运行时,调用了RunScript”解决办法
安装msi安装包提示"在未标记为正在运行时,调用了RunScript”解决办法 windows/temp目录相关权限不对,右击temp文件夹,选择管理员获取所有权限.
- Installshield关于.NET安装时需要重启动的处理办法,以及延伸出的重启后继续安装的安装包的一点想法
原文:Installshield关于.NET安装时需要重启动的处理办法,以及延伸出的重启后继续安装的安装包的一点想法 很多朋友做安装包的时候,所打包的软件需要.NET Framework之类的环境,他 ...
- vs2017离线安装且安装包不占用C盘空间
[参考]vs2017离线安装且安装包不占用C盘空间 第一步:下载离线安装包 https://www.visualstudio.com/zh-hans/downloads/ 在官方地址下载vs_prof ...
- 在Win10中,在安装msi安装包的时候常常会出现代码为2502、2503的错误。
前言:在Win10中,在安装msi安装包的时候常常会出现代码为2502.2503的错误.其实这种错误是由于安装权限不足造成的,可以这种msi的安装包不像其他exe的安装程序,在安装包上点击“右键”之后 ...
- DevExpress控件库 开发使用经验总结3 制作项目安装包
2015-01-27 使用DevExpress控件包开发C/S项目完成后,部署前需要制作本地安装包.本文还是使用“SetupFactory”安装工厂来制作安装包.在以前的系列文章中详细介绍过该工具的使 ...
- 用inno Setup制作web项目安装包
http://www.cnblogs.com/xionghui/archive/2012/03/22/2411207.html 用inno Setup制作安装包 新建一个文件夹exambody,放ap ...
随机推荐
- request.getPathInfo() 方法的作用
request.getPathInfo(); 这个方法返回请求的实际URL相对于请求的serlvet的url的路径.(个人理解.) 比如,有一个Servlet的映射是这样配置的: <servle ...
- Goal+企互区别+Map
1.目标:我想通过本学期这门java ee来提升自己对于java整合开发的应用技术,并加深对上学期学习的java的技术.java目前是应用最广泛的语言,对于企业级应用的开发来说学好java ee是非常 ...
- trigger 触发器(mysql)
/* 触发器 tigger 引出触发器: 在进行数据库应用软件的开发的时候,我们有时候会碰到表中的某些数据改变,同事希望引起其他相关数据改变的需求,这时候就需要使用触发器. 运用触发器可以简化程序,增 ...
- MoreEffectiveC++Item35 条款25 将constructor和non-member functions虚化
1.virtual constructor 在语法上是不可将构造函数声明成虚函数,虚函数用于实现"因类型而异的行为",也就是根据指针或引用所绑定对象的动态类型而调用不同实体.现在所 ...
- 转一个有意思的利用存储过程备份恢复PostgreSQL
[转自 housonglin1213 的博客]http://blog.csdn.net/housonglin1213/article/details/51005540 1.自定义函数脚本备份 CREA ...
- TypeError: pivot_table() got an unexpected keyword argument 'rows'
利用Python进行数据分析>第二章,处理MovieLens 1M数据集,有句代码总是报错: mean_rating = data.pivot_table('rating', rows='tit ...
- [IC]Lithograph(2)光刻技术的分辨率与分辨率增强技术
接上一篇介绍IC制造的基本过程,光刻的基本过程.这篇文章继续介绍光刻过程中的一些概念. 该系列文章的目录如下: [IC]Lithograph(0)半导体制造的基本过程 [IC]Lithograph(1 ...
- fedora 27
安装 U盘安装,感谢学长的U盘 配置 安装外来软件的时候,需要输入root密码 软件 软件安装是个麻烦事儿啊 详情 [新手指南: 在 Ubuntu 和 Fedora 上安装软件包] Fedora 中文 ...
- 【sklearn】性能度量指标之ROC曲线(二分类)
原创博文,转载请注明出处! 1.ROC曲线介绍 ROC曲线适用场景 二分类任务中,positive和negtive同样重要时,适合用ROC曲线评价 ROC曲线的意义 TPR的增长是以FPR的增长为代价 ...
- 程序设计入门-C语言基础知识-翁恺-第二周:简单的计算程序-详细笔记(二)
目录 第二周:判断 2.1 比较 2.2 判断 2.3 课后习题 第二周:判断 2.1 比较 简单的判断语句: if(条件成立){ //执行代码 } 条件 计算两个值之间的关系,所以叫做关系运算 关系 ...