MSI文件是Windows Installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据。MSI文件将程序的组成文件与功能关联起来。此外,它还包含有关安装过程本身的信息:如安装序列、目标文件夹路径、系统依赖项、安装选项和控制安装过程的属性。

VS工具打包生成的exe文件是主要是用于检查安装的环境,当安装的环境检查成功后 msi

安装程序制作,一般有几种解决方案:
一.没有特殊要求,使用VS自带的安装项目,可以直接生成包搜索含EXE和MSI两个文件的安装文件.这两个文件是基于MS的INSTALLER服务的.一般只需要使用MSI程序即可.但需要客户机上运行INSTALLER服务.(现在的WINDOWS系统上都会有这个服务)
二.如果需要打包成正式一点的安装包,还是需要使用INSTALLSHILED.这个工具非常强大,一般的软件都使用的这个,而且网上有大量的使用手册/操作指南之类的帮助文件.
三.特殊情况自已用C#写安装程序.比如,我们在为SBO写ADDON的安装程序时,就需要自己写安装程序.这样的安装程序是把所有的文件作为嵌入资源放在一个EXE文件中.运行此安装程序时,可以把所有的文件COPY到指定目录,并且由于程序是自己写的,在安装期间可以使用大量的自定义操作,比如创建快捷方式,建立数据库等.由于.NET支持XCOPY方式安装,这种方式也非常好用.

安装文件MSI文件和EXE文件有什么区别?
msi是Windows installer开发出来的程序安装文件,它可以让你安装,修改,卸载你所安装的程序.说白了msi就是Windows installer的数据包,把所有和安装文件相关的内容封装在一个包里了.
setup.exe也允许你安装程序,但程序员在开发setup.exe的时候要比开发setup.msi困难的多,需要人工编写和安装,修改,卸载相关的很多内容.而msi把这写功能都集成化了,易于开发WINDWOS程序安装包

VS安装程序制作之MSI/EXE的更多相关文章

  1. .net Windows服务程序和安装程序制作图解 及 VS 2010创建、安装、调试 windows服务(windows service)

    .net Windows服务程序和安装程序制作 最近项目中用到window服务程序,以前没接触过,比较陌生,花了两天的时间学习了下,写了个简单的服务,但在制作安装程序的时候,参照网上很多资料,却都制作 ...

  2. .net Windows服务程序和安装程序制作图解

    最近项目中用到window服务程序,以前没接触过,比较陌生,花了两天的时间学习了下,写了个简单的服务,但在制作安装程序的时候,参照网上很多资料,却都制作不成功,可能是开发环境或项目配置的不同,这里把自 ...

  3. 基于NSIS脚本开发的安装程序制作软件:易量安装

    原文 基于NSIS脚本开发的安装程序制作软件:易量安装 前几天“萝卜”给我推荐了一款安装程序制作工具——易量安装. 易量安装是一款安装程序制作软件,基于著名的NSIS(Nullsoft Scripta ...

  4. NSIS安装程序制作工具判断系统是否安装.NET

    前段时间忙了很久的系统总算上线了,由于是WinForm程序不能整个文件夹的发给客户使用.所以必须要打包,记得以前在VS2005中是自带部署功能的.现在换了VS2013那个部署功能完全弄不清方向.最后在 ...

  5. vb6.0安装程序制作图解教程

    如何制作vb安装程序,是在学习Vb6.0过程中比较常见的一个入门问题. 在此笔者介绍一个最简单的安装方法,就是用VB自带的打包程序进行打包,虽然比较普通,不过内部却有不少窍门,相信这一点知道的人可能不 ...

  6. Java安装程序制作

    对于Java桌面应用来说,比较烦琐的就是安装部署问题,如:客户端是否安装有jre.jre版本.jre在哪里下载.如何用jre启动 Java应用等等.不要说刚接触电脑的人,就算是比较熟悉电脑,如果没有接 ...

  7. Windows服务程序和安装程序制作

    转:http://www.cr173.com/html/15350_1.html 本文介绍了如何用C#创建.安装.启动.监控.卸载简单的Windows Service 的内容步骤和注意事项. 一.创建 ...

  8. C#安装程序制作让安装后的程序开机自动运行

    1.创建安装项目后要在自己的解决方案是添加一个新的类库项目(ClassLibrary1),并在新类库中添加一下安装程序类(Installer1),在Installer1类中添加如下代码: string ...

  9. windows安装程序制作

    作为一个学计算机的,现在才知道那些安装软件都是用软件封装工具封装起来的. 我们写好exe以后可以下载一个Inno setup5 对其打包成可安装的软件,期间可加入图标,readme,等等一些东西.

随机推荐

  1. EntityFramework使用Code First模式创建数据库控制生成单数形式的表名

    使用Code-First模式生成数据库时,默认生成的数据库表的名称为类型的复数形式,例如实体类名称是"User",默认生成的数据库表名为“Users”,多数情况下我们并不想生成的数 ...

  2. ardunio

    fritzing,  arduino简易电路图制作软件

  3. PHP高并发的解决方案

    这几天面试,被问到这样一个问题:如何解决大流量的高并发问题.起初不知所措,在查阅相关资料,以及网上大牛们的解答之后,总结出以下几点: 1.服务器,如果同时访问量超过10W的话,需要采用专用服务器来承载 ...

  4. git error Another git process seems to be running in this repository

    How to fix error Another git process seems to be running in this repository When you use Git, you se ...

  5. 【POJ】1094 Sorting It All Out(拓扑排序)

    http://poj.org/problem?id=1094 原来拓扑序可以这样做,原来一直sb的用白书上说的dfs............ 拓扑序只要每次将入度为0的点加入栈,然后每次拓展维护入度即 ...

  6. 动态向SqlParameter 里添加相应参数

    先定义一个List,然后再往List里面添加SqlParameter对象,然后将List转为SqlParameter数组即可 List<SqlParameter> ilistStr = n ...

  7. yii2 输出json的方法

    public function actionAjax() { if(isset(Yii::$app->request->post('test'))){ $test = "Ajax ...

  8. Asp.Net MVC 把PartialView、View转换成字符串

    在开发中有时要在后台获得某个View 或者 PartialView 生成的字符串,只要你熟悉Asp.Net MVC  生命周期就能理解和敲出下面的代码.没什么高深的,直接上代码: 1,输出View H ...

  9. Linux JAVA 配置

    wget http://download.oracle.com/otn-pub/java/jdk/7u25-b15/jdk-7u25-linux-x64.tar.gz tar zxvf jdk-7u2 ...

  10. jquery如何书写一个根据下拉选择列表的选择值 控制其他标签时候显示的功能

    有时候我们在一些表单搜集信息的时候,需要根据上一项的选择情况设定下面的某些输入信息是否显示,是否需要被收集等,这个时候就要对下拉列表的选择事件做一个监听. 代码如下: <!DOCTYPE HTM ...