该文是根据网上的文章并结合自己实际打包的过程而整理的。

开发平台:VisualStudio2005中文版。

步骤如下:

1. 创建一个安装向导项目或安装部署项目

新建项目-〉其他项目类型-〉安装与部署-〉安装向导(或安装部署),如命名为setup。

2. 将要打包的项目导入到这个安装项目中,有两种方式:
   第一种,自动方式,在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目,这样就会把这个项目添加到该解决方案中来,
   然后在安装项目setup上右击-〉添加-〉项目输出-〉主输出,在项目下拉框中选择刚添加的项目,选择这样就会把这个要打包的项目的基本文件添加到左侧的应用程序文件夹中,名字为主输出来自**(活动)。
   第二种,手动方式,右击左侧的应用程序文件夹(这个文件夹就是要打包的项目中需要的文件)-〉添加-〉文件或文件夹,主要是exe文件和其他配置文件或数据文件。

在第一种方式中,系统会自动将要打包的项目所依赖的依赖项添加到“检测到的依赖项”中,如Microsoft .Net Framework,如果没有就需要手动添加了。
在第二种方式中,依赖项需要手动添加,右击项目-->添加-->合并模块,选择要添加的文件,.Net Framework是必须的,位于:C:\Program Files\Common Files\Merge Modules\ 下。

注意在第一种方式中,如果要打包的项目有配置文件或数据文件等其他,还需要手动将它们添加到应用程序文件夹中。

3. 建立目标机器上的开始-〉程序菜单和桌面的快捷方式

右击应用程序文件夹中的可执行文件-〉创建快捷方式,创建完后,可以重命名为合适的中文名,将该快捷方式剪贴到用户的“程序”菜单中,一般可以先在“程序”菜单中创建一个文件夹。同样的,再创建一个到用户桌面中。

4. 创建卸载程序
   卸载程序的创建方式也有两种。

第一种,自己编写代码,代码如下

/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
    System.Diagnostics.Process.Start("msiexec", "/X{C4A3986F-EA12-4194-BB8B-A9777E78A6ED}");
    Application.Exit();
    //Application.Run(new Form1());
}

其中{C4A3986F-EA12-4194-BB8B-A9777E78A6ED}为安装项目的ProductCode属性值。查看该值时需要点击解决方案中的安装项目的名字,然后在属性窗口(菜单中的视图-〉属性窗口)中查看ProductCode属性值。

然后将该段代码的可执行文件加入到应用程序文件夹中,在卸载项上指向它即可.

第二种,使用msi实现
   在左侧的应用程序文件夹中添加c:\windows\system32\msiexec.exe文件,为了明确其意义,可改为uninstall.exe。然后按照上面提到的步骤创建该卸载文件的快捷方式,同样剪贴到用户的“程序”菜单中。
   在第三步中提到先在“程序”菜单中创建一个文件夹,所以这里将该文件放到这个文件夹下,否则打包的程序安装后,在开始-〉程序列表中是看起来毫无关系的两个快捷方式。为了便于识别,将此快捷方式的名字修改为“卸载**”,**为软件名称。
   修改该快捷方式的Argument属性值为"/x {ProductCode}",ProductCode的查看方式见第4步中的第一种方式。

5. 设置安装项目的属性
   1) 设置安装文件安装时的路径
      该路径是由安装项目的属性manufacture,productname来决定的,为"C:\ProgramFiles\[manufacture]\[productname],可以修改这两个属性值,或者干脆去掉manufacture属性,操作如下:
      右击左边的"应用程序文件夹"打开属性对话框,将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉。
   2) 在解决方案管理器中右击安装项目的名称-〉属性,在打开的属性页中,选择"系统必备",勾中.Net Framework2.0。
      并且选中下面的“从与我相同的位置下载系统必备组件”。默认是第一项从网站进行下载,第三项是手工添加的方式。
   3) 可选。设置安装项目的RemovePreviousVersion属性为True,InstallAllUsers属性为True。

6. 生成解决方案
   生成-〉生成解决方案。

其更全的操作请到如下查看:
   http://www.microsoft.com/china/MSDN/library/netFramework/netframework/VCSdnnetdepvsredistdeploy.mspx

?mfr=true
http://www.java-asp.net/aspnet/200601/t_49903.html
部署.net平台的程序

在我实际打包的过程中,采用的是第二步中的第一种方式,第四步的第二种方式。虽然安装程序后,在安装目录下有msiexec.exe,但是点击卸载却并没有卸载掉程序,需要从控制面板中进行卸载。

附:
将.Net Framework2.0打包到安装程序中的另一种方式需要用到MicrosoftVisual Studio .NET 2005 引导程序插件PluginInstaller.msi,可以到微软官方网站下载,然后安装。安装该插件后再进行打包时,会发现安装文件的同级目录下会多出好几个文件。

另外在第五步中选择从从网站下载.Net Framework 2.0,可以通过下面的方式查看url地址:
点击解决方案下的安装项目,视图-〉编辑器-〉启动项目。可以左侧的启动条件下有.Net Framework一项,点击该项后在属性窗口中查看InstallUrl属性,一般为"http://go.microsoft.com/fwlink/?LinkId=9832"
7. 安装路劲设置

选择[文件系统]->[应用程序文件]->[属性]->DefaultLocation=路劲(D:\文件夹\)
参考:
手把手教你用C#打包应用程序(安装程序)【卸载模块已添加. http://bbs.bccn.net/viewthread.php?tid=129015.
C#打包. http://www.cnblogs.com/wenlin1234/archive/2008/01/16/798737.html

C#打包制作安装程序过程全记录的更多相关文章

  1. vs.net应用程序图标以及制作安装程序快捷方式图标设置

           我们通常在开发软件完毕后需要打包制作安装程序,这个时侯一般都会需要设置应用程序的图标,使用默认的图标一般都比较难看,那么我们应该怎样设置自定义的图标呢? 我现在要讲的图标设置有两种情况, ...

  2. Wix打包系列(一)如何使用wix制作安装程序

    原文:Wix打包系列(一)如何使用wix制作安装程序 最近由于项目需要,需要给客户制作安装程序,一开始使用vs2005自带的打包工程来打包,但用了一段时间发现vs打包太死板,而且使用起来问题很多.收费 ...

  3. 使用好压(HaoZip)软件打包EverEdit制作安装程序

    最近使用EverEdit,使用原始的安装程序安装后,需要重新安装插件,对配置文件进行了修改,定制了工具栏.将安装后的程序目录进行打包,制作新的安装包,便于携带. 以下为打包制作过程: 打包原料:Eve ...

  4. SAP S4HANA1610/Fiori安装过程全记录

    经历各种坑,从硬件到文件,终于安装成功. 有需要安装或使用S4HANA(含Fiori)的同学可以参考. 安装文件分享给大家 链接:http://pan.baidu.com/s/1mi7LfIS 密码: ...

  5. 在CentOS7上通过RPM安装实现LAMP+phpMyAdmin过程全记录

    在CentOS7上通过RPM安装实现LAMP+phpMyAdmin过程全记录 时间:2017年9月20日 一.软件环境: IP:192.168.1.71 Hostname:centos73-2.sur ...

  6. 在CentOS6上配置MHA过程全记录

    在CentOS6上配置MHA过程全记录 MHA(Master High Availability)是一款开源的MariaDB or MySQL高可用程序,为MariaDB or MySQL主从复制架构 ...

  7. VS2010制作安装程序

    转自(http://blog.csdn.net/wenmang1977/article/details/7733685) 序 前些天想写一下制作安装程序,由于要写的内容比较多,一拖再拖,不过坚持就是胜 ...

  8. .net core 和 WPF 开发升讯威在线客服系统:把 .Net Framework 打包进安装程序

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程. 系列文章目录: https://blog.shengxunwei.com/Home/Post/44a3 ...

  9. win7下nsis打包exe安装程序教程

    下载软件包: NSIS中文版 :https://pan.baidu.com/s/1mitSQU0 装好之后会出现两个软件:Nullsoft Install System 和 VNISEdit 编译环境 ...

随机推荐

  1. Android的主要组件

    (一)Activity(活动) 作用:提供可视化用户界面 只能通过setContentView(View)来显示指定组件 View组件是所有UI控件.容器控件的基类,View组件就是android应用 ...

  2. ansibleplaybook的使用

    1.简单格式要求 [root@ansibleserver ansible]# cat nagios.yml --- - hosts: nagiosserver tasks: - name: ensur ...

  3. [python]Python操作MySQL

    [安装] 安装MySQL 安装MySQL不用多说了,下载下来安装就是,没有特别需要注意的地方. 一个下载地址:点击打开链接 [样例] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...

  4. md5加密算法c语言版

    from: http://blog.sina.com.cn/s/blog_693de6100101kcu6.html 注:以下是md5加密算法c语言版(16/32位) ---------------- ...

  5. Mac OS10.9 下python开发环境(eclipse)以及自然语言包NLTK的安装与注意

    折腾了大半天,终于把mbp上python自然语言开发环境搭建好了. 第一步,安装JDK1.7 for mac MacOS10.9是自带python2.7.5的,够用,具体的可以打开终端输入python ...

  6. 数往知来 JavaScript<十三>

    一.javaScript 语法:大小写敏感,弱类型(所有类型都用var进行引导.声明) 写在<script></script>标签里  不可以放在title里 var num= ...

  7. Wireshark基本介绍及应用tcp

    wireshark介绍 wireshark的官方下载网站: http://www.wireshark.org/ wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示 ...

  8. air for ios

    在 Adobe AIR 中为不同屏幕尺寸的多种设备提供支持 使用Flash Builder 4.5进行多平台游戏开发 手机屏幕触控技术与提升AIR在Android上的触控体验 AIR Native E ...

  9. dom 优酷得弹出

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  10. oracle10g库连接报错