vs2008安装部署工程制作教程[图文]

1.新建一个Class Library, 例如Name 为 CustomAction. 这个就是一个自定义安装行为的类。

2. 添加安装类。在新建的Library里面添加一个 Installer Class,名字我暂时定为MyInstallerClassDll

3. 重写基类的函数

Commit

Install

OnAfterInstall

OnAfterRollback

OnAfterUninstall

OnBeforeInstall

OnBeforeRollback

OnBeforeUninstall

OnCommitted

OnCommitting

Rollback

Uninstall

每个函数对应的是安装过程中的不同时期。

我暂时重写了Commit函数,但是还没有自己的实现。

public override void Commit(System.Collections.IDictionary savedState)

{

base.Commit(savedState);

}

4. 新建一个setup工程,在Other Project Types里面,并且下拉框选中Add to Solution。我暂时命名为setup. 当然这个前提是你有一个想安装的程序。 或者有你想制作安装程序的编译后的文件。

5. 添加源程序文件。

切换Setup工程的视图为File System

左键点击Application Folder.这个文件夹就是放源程序文件的。User’s Desktop是放桌面快捷方式的,User’s Programs Menu是定义开始菜单的。

在右边空白的地方右键选中添加项目输出文件

下面下来列表选中你要安装的程序,比如我要安装的是 WpfSetup。按住Ctrl键选中Primary output和 Contetn Files,点击OK键。这样就把需要安装的程序的编译后的主要文件都添加进来了。当然也可以手动添加进来如上图选中Add->File然后浏览到你的release或者是debug后的文件夹,然后选中主要文件添加进来。

6. 创建快捷方式。在刚刚添加的Primary output from WpfSetup(Active) 上面点击右键,选择创建快捷方式,然后重命名。

把这个重命名的文件用鼠标左键托到User’s Desktop文件夹里面,这样的话就会在桌面上面生成一个快捷方式,然后再自定义开始菜单的结构,安装通常的做 法,我们在User’s Programs Menu文件夹里面新建一个文件夹用于放置我们安装卸载以及帮助手册之类的快捷方式。我定 义的文件夹是WPFSample,快捷方式的添加参照User’s Desktop里面快捷 方式的添加。

这样的话安装程序的文件结构已经完成了。

7. 设置系统必备属性。

在setup工程上面点击右键选择属性。

点击 Prerequisites,在弹出的对话框里面选择如下图所示的选项,一定要选择Download prerequisites from the same location as my application. 当然你也可以根据你的SDK选择不不同的版本。如果你选择的是3.5 Sp1。

如果在编译的过程中出现了The install location for prerequisites has not been set to 'component vendor's web site' and the file 'dotNetFx35setup.exe' in item 'Microsoft.Net.Framework.3.5.SP1' cannot be located on disk.这样的错误你就需要进行如下操作:

1. 打开[Program Files]/Microsoft SDKs/Windows/v6.0A/Bootstrapper/Packages/

DotNetFx35SP1 文件夹,在x64 操作系统上是 %ProgramFiles(x86)% /Microsoft SDKs/Windows/v6.0A/Bootstrapper/Packages/DotNetFx35SP1

2. 修改Product.xml文件,在<PackageFiles>节点里面添加下 列内容,然后保存。

<PackageFile Name="TOOLS/clwireg.exe" />
<PackageFile Name="TOOLS/clwireg_x64.exe" />
<tPackageFile Name="TOOLS/clwireg_ia64.exe" />

3. 打开这个网址http://go.microsoft.com/fwlink?LinkID=118080,下载dotNetFx35.exe

4. 打开命令提示符窗口(DOS窗口),并且进入你下载的dotNetFx35.exe的文件夹

5. 执行下面这个命令dotNetFx35.exe /x:。注意/x后面有个冒号呢。

6. 把解压后的WCU/dotNetFramework里面的文件(如下图)拷贝到上面路径提到的DotNetFx35SP1文件夹下面

如果还有问题

1. 在Product.xml找到 <PackageFile Name="dotNetFX30/XPSEPSC-x86-en-US.exe" 然后修改 PublicKey 的值为: 3082010A0282010100A2DB0A8DCFC2C1499BCDAA3A34AD23596BDB6CBE2122B794C8EAAEBFC6D526C232118BBCDA5D2CFB36561E152BAE8F0DDD14A36E284C7F163F41AC8D40B146880DD98194AD9 706D05744765CEAF1FC0EE27F74A333CB74E5EFE361A17E03B745FFD53E12D5B0CA5E0DD07BF2B7130DFC606A2885758CB7ADBC85E817B490BEF516B6625DED11DF3AEE215B8BAF8073C345E39589 77609BE7AD77C1378D33142F13DB62C9AE1AA94F9867ADD420393071E08D6746E2C61CF40D5074412FE805246A216B49B092C4B239C742A56D5C184AAB8FD78E833E780A47D8A4B28423C3E2F27B6 6B14A74BD26414B9C6114604E30C882F3D00B707CEE554D77D2085576810203010001

2.找到<PackageFile Name="dotNetFX30/XPSEPSC-amd64-en-US.exe" 按照上面的步骤修改。

8.设置安装程序的属性

在setup工程上面右键点击选择属性。如下图。可以选择需要修改的属性,比如语言,作者和制造商以及安装程序的名字等等。

9.Rebuild 这个安装部署工程,然后在debug或者release文件里面找到安装文件,比如我的是WPFSample.msi. 双击就可以运行了。

10. 自定义安装界面

在setup工程上面点击右键选择用户界面视图

打开后如下图,可以看到安装分 下面三个部分,Start, Progress, End.我们可以在任意一个部分添加任意一个窗口。有些窗口需要用户输入参数的,这样的话就需要在后台获得这些 参数,这样就需要我们开始建立的CustomAction类了。

11. 自定义安装行为,选中一个你添加的对话框,比如我选中的是TextBoxes (A),它有四个输入框

我只需要两个所以第三个和第四 个的Visible属性都是false. 然后定义第一个和第二个输入框的属性名字,我定义的是NAME和PASSWORD。

切换到Customs Actions视图

在Install和Commit文件上面右键添加上面定义的那个Custom Action.当然这个Primary output已经添加到了Application Folder里面了(添加方法参照上文)。这个也可以就是那个工程的.dll文件。

选择Install或者Commit文件里面的CustomAction文件,查看属性

在CustomActionData属性里面输入参数名称和值例如/name=[NAME]这个表达式的意思就是定义一个变量名字是name值是前面添加的那个对话框的属性名称并用[]括起来。这样就可以在自定义安装类里面得到了。方法如下:

string name = this.Context.Parameters["name"].ToString();

string pass = this.Context.Parameters["password"].ToString();

这样就得到了输入框的值。然后 在进行一些逻辑操作。也可以抛出一个异常来终止安装过程,并回滚。

throw new Exception("Invalidate name");

回滚和卸载的程序我们也可以自定义,道理都是一样的 。

12. 实现卸载

找到msiexec.exe这个文件,通常在C:/WINDOWS 下面

添加到Application Folder里面修改名字为Uninstall.exe(也可以不修改)。

创建快捷方式,移到User’s Programs Menu下 面的自定义的那个文件夹下面如WPFSample文件下面

然后打开属性窗口,设置Arguments值为 /x ProductCode

这个ProductCode值在 Setup工程的属性页可以看到

这样就完成了卸载程序了。

(0)

相关推荐

  • Autocad2013中文版安装注册激活教程(图文)

    AutoCAD软件是全球领先的设计与文档编制解决方案,可帮助各行各业以及各种规模的公司推动设计创新。全新发布的AutoCAD® 2013版本软件能够连接和简化您的设计和文档编制工作流程,并通过新的工具 ...

  • 腾达(tenda)无线路由器安装与设置教程(图文详解)

    腾达(tenda)无线路由器安装与设置与普通的腾达路由器设置相似,只是无线路由器需要多设置一下无线网络方面的,以下脚本之家编辑为大家详细分享下最全的tenda无线路由器设置教程,包括腾达无线路由器的安 ...

  • Samplitude 11安装汉化教程图文详解

    Samplitude 11 是由德国著名公司 MAGIX 出品的音乐制作软件,具有数字影像.模拟视频录制.编辑以及5.1环绕声制作功能,可针对目前主流的音频文件进行任意切割.剪辑音频的处理,小编这里详 ...

  • CSI ETABS 2016安装及破解教程图文详解(附ETABS2016下载地址)

    ETABS 2016是由CSI公司开发研制的房屋建筑结构分析与设计软件,我们小编为大家提供ETABS 2016破解版的下载地址,文件内含有注册机,本文主要针对许多还不清楚ETABS 2016 32位/ ...

  • TB传输精灵怎么用?TB传输精灵安装及使用教程图文详细介绍

    TB传输精灵是一个跨平台文件分享类软件,安装在2个设备上就可以通过wi一Fi传输文件,数据线再见! PC端上找到移动设备点击推送,手机接收一下就OK! 你还在用过时的U盘吗?TB传输精灵也支持PC和P ...

  • Win2003 SP2无人值守安装光盘制作教程[图文]

    开场啦!!!首先理理思路吧: 一、 原理: 1、win2003集成sp2是用很sp2的新文件去覆盖原始光盘的旧文件,使得原始版发行后发现的一些漏洞得到修补。 2、要使集成后的光盘具有无人值守功能,我们 ...

  • CentOS6.4系统中Mysql数据库卸载.安装与配置教程[图文]

    一、mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数 ...

  • 海信智能电视怎么样安装第三方软件_教程图文

    海信电视作为一个国内知名的网络电视品牌,在电视观影效果上下足了文章,全面支持3D和高分辨率视频解码,赢得了一大批粉丝的喜欢.家中如果有了海信电视再搭配一款电视直播软件,就能实现观看直播的功能了.在这里 ...

  • Win10 64位安装Vmware Workstation 12图文详细教程(附激活方法)

    Vmware Workstation 12一款专业的应用于Win10 64位操作系统上的虚拟机软件,用户可在Vmware虚拟机同时运行各种操作系统,进行开发.测试.演示和部署软件,这里详细的给大家介绍 ...