使用VS2015的Visual Studio Installer打包安装项目,虽然整体操作很简单,但还是有几个特殊的点需要记一下,故写下此博客方便以后查阅

第一步,创建安装项目

如下:

里面最左侧的框框有三个文件夹

1.“应用程序文件夹”即"Application Folder"表示要安装的应用程序需要添加的文件;

2.“用户的‘程序’菜单”即"User's Programs Menu"表示:应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程序.exe和卸载程序.exe;

3.“用户桌面”即"User's Desktop"表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。

第二步,右键“应用程序文件夹”,添加——文件

添加的文件一般是已经编译生成过的应用程序项目的debug目录下的exe文件(即位于../bin/Debug文件夹下的主程序exe文件);

添加后,一般它会自动把exe程序所需的依赖项也加进来,如各种dll文件,在右侧的“Detected Dependencies”里面可以看到它自动导入了哪些依赖项,方便你检查是否有遗漏

接下来,可能还剩一些文件夹或者配置文件XML等没有自动加进来,这个时候就需要自己手动添加

方式也是一样,右键“应用程序文件夹”,添加——文件夹,添加——文件,这里就不再赘述

第三步,创建快捷方式

右键主程序exe文件,选择“创建快捷方式到……”

然后,中侧框框里会出现一个快捷方式项,将它剪切,粘贴到“用户桌面”文件夹下

至于快捷方式的名称、图标、描述等其他属性,可以在属性面板中设置,如下

第四步,添加卸载程序

既然有安装就有卸载,卸载程序其实是一个Windows操作系统自带的程序(C:Windows\System32\Msiexec.exe),只不过是通过给它传特殊的参数命令,来让它执行卸载

添加和设置卸载程序的操作如下:

首先,将卸载程序放在“应用程序文件夹”目录下,右键“应用程序文件夹”,添加——文件,在系统盘下找到这个路径文件——C:Windows\System32\Msiexec.exe添加进去

由于Msiexec.exe这个名字不够直观,所以一般接下来我们会对它重命名,一般改为“卸载.exe”或“UnInstall.exe”,然后给它创建快捷方式并将快捷方式放到“用户程序菜单”目录下

接下来是很关键的一步,设置卸载参数,告诉卸载程序该卸载哪个

首先,找到安装项目的ProductCode,在安装项目的属性面板中可以看到,如下

复制此ProductCode ,粘贴到“卸载.exe”快捷方式的Arguments属性,前面加/x空格,如下

Arguments=“/x {81575537-5736-457F-9DBE-857C1F67BE70}”记得/x后面一定要有个空格

第五步,其他设置

如果还想对安装程序进行其他设置,比如,友化安装欢迎界面,自定制安装步骤,修改注册表,设置启动条件(比如要求必须先安装指定的.net FrameWork版本才可以启动)等,可以右键安装项目,在View中可以进行选择设置,如下

有需要可以再去研究,这里就不详细赘述了

第六步,设置系统必备

一般我们开发的程序都有一个目标框架,也就是所依赖的.net Framework版本环境,如.net Framework 2.0/3.5/4.0/4.5等

要想我们的程序能在电脑上正常运行,首先就得保证电脑上装有指定的.net Framework版本框架,可以在安装包的属性中设置,启动安装前检查操作系统中是否安装了指定版本的框架或其他依赖,设置方法如下:

右键安装包项目,点开“属性”

然后点击“Prerequisites……”

选择你程序需要的.net Framework版本以及其他依赖项

选择“从组件供应商的网站上下载系统必备组件”,这样一来,即使电脑上没有安装需要的.net Framework也不要紧,只要设置了这项,安装程序会自动从微软的官网上下载对应的组件并安装,是不是很方便

第七步,生成打包安装文件

右键安装项目,选择重新生成

然后打开解决方案文件夹下的Debug或Release文件夹,就可以看到生成的安装文件

生成的setup.exe与setup.msi的区别
setup.exe里边包含了对安装程序的一些条件的检测,比如需要.net的版本是否安装等,当条件具备后,setup.exe接着调用setup.msi,而setup.msi则可以直接运行,如果你确定条件都具备的情况下。

C#--打包安装项目相关推荐

  1. VB.net:VB.net编程语言学习之添加引用打包安装项目的简介、案例应用之详细攻略

    VB.net:VB.net编程语言学习之添加引用&打包安装项目的简介.案例应用之详细攻略 目录 关于添加引用 1.SW的二次开发,需要引用多个Solidworks库文件即dll文件

  2. 使用VS自带的打包工具,制作winform安装项目

    开发环境:VS2008 Access 操作系统:Windows XP 开发语言:C# 项目名称:**管理系统 步骤: 1.打开开发环境VS2010,新建项目,选择其他项目类型,再选择"安装项 ...

  3. C# 程序打包成安装项目

    Xaml设置图标 https://blog.csdn.net/u014234260/article/details/73648649 winform程序控制面板中卸载显示图标 https://blog ...

  4. C# winform程序怎么打包成安装项目(图解)

    转自:https://blog.csdn.net/u011981242/article/details/51059441#comments 开发环境:VS2010+SQL Server 2008 操作 ...

  5. 利用VS安装项目打包软件的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 昨天摸索了一下,发现使用VS安装项目来打包软件还是挺方便的. 1. 创建一个安装项目工程,如下图: 2. 设置工程属性 ...

  6. JAVA项目的打包及生成.exe文件或者打包安装软件

    总体思路是先打成jar再把jar打成exe.主要看1.3和2.3里的内容就可以了. 1.将项目打成jar: 1.1要将项目打包成jar文件,方法很多,可以用Eclipse自带的打包工具Ant打包,也可 ...

  7. 使用VS 自带的打包工具,制作winform安装项目

    开发环境:VS 2008 Access 操作系统:Windows XP 开发语言:C# 项目名称:**管理系统 步骤: 第一步:打开开发环境VS2008,新建项目,选择其他项目类型,再选择" ...

  8. vs2010发布、打包安装程序(超全超详细)

    1.  在vs2010 选择"新建项目"----"其他项目类型"----"Visual Studio Installerà"安装项目&quo ...

  9. 转[WinForm] VS2010发布、打包安装程序(超全超详细)

    1. 在vs2010 选择"新建项目"→" 其他项目类型"→" Visual Studio Installer→"安装项目": 命 ...

  10. 使用pyinstaller打包python_使用pyinstaller打包Python项目,python

    00 前言 上一篇文章写的是使用百度aip实现一个图片转文字的小工具( https://blog.csdn.net/George_Clancy/article/details/105551872 ), ...

最新文章

  1. strust2自定义interceptor的基本方法及操作
  2. MySQL-MMM实现MySQL高可用
  3. Metasploit编码模块技巧
  4. orcle 删除表报正在使用_删除文件时提示正在使用无法删除?这款免费软件帮你快速解决问题...
  5. bat 指定jdk_微服务开发 bat 一键批量启动 jar(效率小技巧)
  6. Excel宏的易错点
  7. 如何让 Flutter 应用更好地使用 SVG?
  8. python和台达plc通讯_台达PLC通信协议ModbusASCII(DVP)
  9. Python基础__Python序列基本类型及其操作(1)
  10. echart移上去显示内容_Echarts X轴内容过长自动隐藏,鼠标移动上去显示全部名称方法...
  11. 关于安装TOMCAT解压版环境配置流程
  12. easypoi 大数据 百万_燃烧大数据 | 分析了2百万份成绩后发现,女跑者更稳?
  13. ClassGraph使用
  14. 计算机实战项目之 [含论文+任务书+中期检查表+答辩PPT+源码等]基于javaweb宠物领养网站
  15. 戴尔服务器盘安装系统安装win7系统教程,戴尔系统光盘安装win7系统方法
  16. tungsten mysql_ETL之Tungsten Replicator
  17. oracle的sid如何修改,Oracle数据库修改实例名SID的方法步骤
  18. 【火炉炼AI】机器学习050-提取图像的Star特征
  19. outlook邮箱附件无法打开,提示无法创建文件
  20. python识图找图_【python 图像识别】图像识别从菜鸟

热门文章

  1. 【超图+CESIUM】【基础API使用示例】28、超图|CESIUM -【坐标转换】世界坐标转经纬度
  2. 潇洒郎: websockets 服务端设计:多线程执行async方法
  3. 数字人轻松学习Blender系列之八:建模-1
  4. 央行数字货币——DCEP的那些事儿
  5. JavaWeb开发——软件国际化(动态元素国际化)
  6. ROS下使用摄像头进行机器人巡线功能(附带功能包链接)
  7. 弹性伸缩定时任务支持Cron表达式
  8. nfc加密卡pm3和pm5区别_为了省门禁卡的钱,买了NFC读卡器,到底值不值
  9. 一篇教你随意下载网易云音乐歌曲的博客!
  10. HTML和CSS中电子字体的显示与制作