WinForm开发(4)——使用Visual-Studio-2010-打包安装程序
打包程序:
1,解决方案—右键菜单“添加”—新建项目—其他项目类型—安装和部署—Visual Studio Installer—安装项目,输入名称Setup1,点“确定”
2,添加开始程序中的文件夹:右击左侧“应用程序文件夹”—添加—文件夹,自己设置名称。这里的作用就是好管理,这里我就叫它“测试打包系统”;然后再右击左侧“用户的程序菜单”—添加—文件夹,自己设置名称,这里我就叫它“测试打包系统”。
3,添加主输出:右击左侧“应用程序文件夹”—测试打包系统(即刚刚创建的文件夹),添加—项目输出-主输出-确定。
下一步:添加主输出
4,添加开始程序中和桌面的主程序快捷方式:单击左侧“应用程序文件夹”—测试打包系统(即刚刚创建的文件夹),右键菜单“创建主输出来自***的快捷方式”,命名为“测试打包系统”。然后将其分别拖到左侧“用户的程序菜单”—测试打包系统(即刚刚创建的文件夹)和左侧“用户桌面”(或单击左侧刚新建的文件夹--右侧右键—创建新的快捷方式--选择“应用程序文件夹”---主输出--“确定” ;单击左侧用户桌面--右侧右键—创建新的快捷方式---选择“应用程序文件夹”---主输出---确定)
5,设置程序图标:先把 图标文件放到你的程序目录下---单击左侧“应用程序文件夹”---Images(自己创建的文件夹),---空白处右键—添加—文件---图标文件。然后左侧“用户的程序菜单下”的文件夹 ---单击刚才新建的程序快捷方式---属性窗口---Icon—浏览—图标文件---确定。同理添加“用户桌面”里快捷方式的图标。
添加"快捷方式的属性"
浏览找到图标文件---确定。
6,添加卸载功能:右击左侧“应用程序文件夹”—测试打包系统(即刚刚创建的文件夹),添加—文件,在 c:\windows\system32文件夹下找到msiexec.exe文件。然后像添加主程序快捷方式一样在开始程序中添加这个卸载的快捷方式,名字可以自己设置,这里我就叫它“卸载系统”。
在“解决方案管理器”中单击“Setup1”,也就是你的安装项目,在属性窗口找到“ProductCode”,复制它后面的值,然后单击刚新建的卸载的快捷方式“卸载系统”,属性中找到“Arguments”,在后面的框里输入 “/x (空一格)”再加上刚才复制的值就行了。
7,在Setup属性中可以自己设置“ProductName”和“Title”的内容;
8,修改安装默认路径:单击左侧“应用程序文件夹”,属性中“DefaultLocation”把中间的“[manufacturer]”删除,否则安装路径中会出现你自己的用户名。
9,添加系统必备:右键setup1—属性—“系统必备”按钮,在“指定系统必备组件的安装位置”中选择“从与我的应用程序相同的位置下载系统必备组件”,确定。
10,生成安装项目:右键“Setup1”—生成,稍等会儿,OK,大功告成了!然后到你的项目文件夹中可以看到“Setup1”文件夹,在“Debug”下就可以看到安装文件了!
二、自定义用户界面
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开发(4)——使用Visual-Studio-2010-打包安装程序的更多相关文章
- 学习时用的软件最新 开发环境为Visual Studio 2010,数据库为SQLServer2005,使用.net 4.0开发。 超市管理系统
一.源码特点 1.采用典型的三层架构进行开发.模板分离,支持生成静态 伪静态..购物车.登陆验证.div+css.js等技术二.功能介绍 1.本源码是一个超市在线购物商城源码,该网上商城是给超市便利店 ...
- Visual Studio Installer打包安装项目VS2015
使用VS2015的Visual Studio Installer打包安装项目,虽然整体操作很简单,但还是有几个特殊的点需要记一下,故写下此博客方便以后查阅 第一步,创建安装项目 如下: 里面最左侧的框 ...
- Visual Studio 2010详细安装过程
Visual Studio 2010在目前看来,应该是使用得比较多的一款微软的软件开发工具集合了,因为它具有以下优点:(1)启动速度快:在相同环境下,相比于Visual Studio 2015来说,2 ...
- 在Visual Studio 2010中安装iGraph
本安装步骤参考了:http://www.16kan.com/question/detail/182225.html Igraph actually does work with Visual C++ ...
- Visual Studio 2010软件安装教程
链接:https://pan.baidu.com/s/10FeLlKpzFcb9yUjm3ZECsg 提取码:pup1 复制这段内容后打开百度网盘手机App,操作更方便哦 1.右击软件压缩包,选择解压 ...
- [转]Visual Studio 2010 中安装Qt 5.1
截至目前(2013年7月12日)为止,Qt 的最高版本为Qt5.1,在该版本中已经将Qt Creator与Qt Lib集成在一个文件夹中,因此安装的时候较为方便,只需安装一个即可.因为Qt具有超强的可 ...
- Visual Studio 2017打包安装项目
在我们用VS编好上位机后,就可以在自己电脑运行上位机,但是想其他人电脑运行上位机可能就行不通了,因为其他人电脑不一定有所需要的运行环境.这时我们就需要打包安装,把运行软件所需要的环境都打包在安装包里. ...
- Microsoft Visual Studio 2010 已安装的模板 没有 “ADO.NET实体数据模型”
2010 sp1才包括entity framework. 装一个补丁即可 地址为:http://www.microsoft.com/zh-CN/download/details.aspx?id=236 ...
- Visual Studio 2010 下 安装RGiesecke.DllExport
RGiesecke.DllExport 在 UnmanagedExports 中.安装过程如下: 1.首先在"工具"菜单下的"扩展管理器"中,安装 NuGet ...
- Visual studio 2010(VS2010) 安装MSDN方法
首先保证VS2010已经安装完毕 1.解压VS2010的安装文件(ISO),会看到ProductDocumentation文件夹,该文件夹下即为MSDN. 2.启动vs2010,点击"帮助& ...
随机推荐
- 题解【Codeforces438D】The Child and Sequence
题目描述 At the children's day, the child came to Picks's house, and messed his house up. Picks was angr ...
- AWS ec2的ubuntu14.04上安装git服务
http://imerc.xyz/2015/11/13/Ubuntu-14-04%E4%B8%8AGit%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E6%90%AD%E5 ...
- party lamps(dfs优化+规律枚举)
Problem description: To brighten up the gala dinner of the IOI'98 we have a set of N coloured lamps ...
- Unity Coroutine详解(二)
• 介绍• Part 1. 同步等待• Part 2. 异步协程• Part 3. 同步协程• Part 4. 并行协程 1.介绍 ...
- thinkphp 接收文件并处理
html前台文件,上传到控制器,thinkphp处理它 前台 <form action="{:url('product/brand_addcl')}" enctype=&qu ...
- sqli-libs(42-45(post型)关)
Less_42 查看源代码,可以看到password没有经过mysqli_real_escape_string()函数进行处理,所以这个时候我们在这个位置进行构造 使用admin 111111进行登录 ...
- 题解【POJ2955】Brackets
Description We give the following inductive definition of a "regular brackets" sequence: t ...
- Codeforces Round #614 (Div. 2)E(思维,构造,DP)
构造边权,从0开始给边赋值,初始选取一条边权为0,每次赋值的贡献为这一条链两侧的结点(包含链的端点)个数之积,下一次赋值以当前链其一端点续一条边,边权为上次赋的值+1.先DFS找到点的组合这条链两侧结 ...
- Go_type
1. type的定义和使用 Go语言支持函数式编程,可以使用高阶编程语法.一个函数可以作为另一个函数的参数,也可以作为另一个函数的返回值,那么在定义这个高阶函数的时候,如果函数的类型比较复杂,我们可以 ...
- jq的 on 事件委托 导致多次执行问题
解除 这个元素 在 父级上的 click 事件委托$(msg.fatherDiv).off('click','.fangdaimg_fn2'); click事件$('.fangdaimg_fn2'). ...