leo-navy

 

首先在打开 VS2010    》   文件 》新建项目

创建一个安装项目  XXX    

在“目标计算机上的文件系统”下我们看见    应用程序文件夹,用户程序菜单 ,用户桌面  , 在  应用程序文件夹  右击添加文件夹(即安装后所在安装路径下生成的包含程序相关组件的文件夹)

 

本列中添加了  测试安装程序文件夹   ,在   测试安装程序文件夹  上右击  ,选择 添加,根据项目需要 ,将所有程序所需要的组件都添加进去,本例中 将XXX.exe  ,XXX.dll ,图标等文件添加

 

要实现卸载功能的话,需要将  C:\Windows\System32\msiexec.exe  程序也添加到    测试安装程序文件夹  中,然后在进一步操作

接下来,分别给主程序  XXX.exe 和 msiexec.exe  建快捷方式

 

同理在  用户程序菜单   中添加一个文件夹 ,并将  XXX.exe 和 msiexec.exe  的快捷方式 剪切到 该文件夹下,这样在用户点击 开始 菜单 后 就会看见我们安装程序的文件,提供了运行程序的快捷方式和卸载该程序的快捷方式。

接下来设置卸载程序的参数 :在 解决方案下 ,单击该安装项目名称 ,进入其  属性  页面 ,找到其 ProductCode 的属性值,将属性值复制下,本例中该属性值为:{226D41BC-A197-41B0-9156-2EC489089D99} (即本安装软件的ID)

 

 

然后在  卸载程序所建的快捷方式   的属性页上 的 Arguments 属性项  ,将其值赋值为  :/x{226D41BC-A197-41B0-9156-2EC489089D99}  ,/x 为命令 ,后面跟此安装的软件的ID ,这样,卸载程序才能知道运行时该卸载那个软件。

 

最后,在 用户桌面   添加 主程序的 快捷方式

最后我们还要设置一下相关属性,由于次软件是在.Net 下开发的,所以如果目标计算机上并没有安装相应的.Net 库文件,则安装后程序仍然无法运行,因此,需要设置此安装程序的属性,选中此安装程序,右击 ,进入  属性 页面。

 

单击  系统必备  

 

 

程序会自动识别所需要的.Net库文件和安装程序,默认即可,在  指定系统必备组件的安装位置    选项,第一项的意思是,在安装时,若目标计算机没有.Net库文件的话,安装程序将提示用户从网上下载相应的.Net库文件。第二项的意思是 ,直接从本地计算机上将相应的.Net库文件拷贝到 此安装程序的 Debug 目录下,在目标计算机安装时,若安装程序检测到计算机未安装.Net库文件,则先安装.Net库文件,再安装该软件,无需下载.Net库文件。 因此我的程序中选择第二项,单击  确定。

最后 生成该安装包, 在Debug 目录下 找到 setup.exe 文件即是我们的安装包。

 

最基本的安装程序就是这些,如果复杂的大型应用可能涉及到 注册表及启动条件,安装引导界面等属性的设置,我们在  安装程序  右击  选择   视图   ,可以在里面进行相关设置,这里不再详述,以后根据需要再补充。小功告成,不足之处,欢迎大家指正...

————————————————————————————————————————————————

前注:写这篇文章时使用的是E版的Visual Studio 2005 Team Suite 

一.创建程序安装包

1)  创建安装和部署项目:

①     右击当前解决方案——Add——New Project,在弹出的窗口中选择Other Project Types——Setup and Deployment——Setup Project;然后在下方文本框中输入Name,点击“OK”按钮。新添加的安装和部署项目会出现在解决方案列表中。

 

2)  创建组件注册项目:

①     右击当前解决方案——Add——New Project,在弹出的窗口中选择 Visual C#——Class Library;然后在下方文本框中输入Name,点击“OK”按钮。新添加的项目会出现在解决方案列表中。

②     右击该项目——Add——New Item,在弹出的窗口中选择Installer Class;在下方文本框中输入Name,点击“Add”按钮添加文件并关闭窗口。

③     选中刚添加的文件,按F7转到代码页,在构造函数下方添加以下方法:

public override void Install(System.Collections.IDictionary stateSaver)

              {

                    base.Install(stateSaver);

                   // 注册CDO组件

                   // /s 关闭注册成功的提示窗口显示,/c退出cmd窗口

System.Diagnostics.Process.Start("cmd", @"/s regsvr32 C:\WINDOWS\system32\cdosys.dll /c");

   }

   注意:需要using System.Configuration.Install;

3)  在安装和部署项目中添加要安装的项目和文件:

①     添加项目:右击项目——View——File System,在出现的界面中,右击左列的Application Folder——Add——Project Output,在弹出的窗口中选择相应的Project,然后点击“OK”按钮。多个项目重复多次。在这里我们假设我们开发的项目为MainProject,注册组件的项目名称为RegDll,那么我在弹出的窗口中先选择项目MainProject,点击“OK”后,我在重复添加项目RegDll。

②     添加文件:右击项目——View——File System,在出现的界面中,右击左列的Application Folder——Add——File,在弹出的窗口中选择C:\WINDOWS\system32 \misexec.exe;

③     创建快捷方式:在右列中选择Primary output from MainProject(Active),右击 选择Create Shortcut to Primary output from MainProject(Active),你可以按F2给新添加的快捷方式更名。右击msiexec.exe 选择 Create Shortcut to misexec.exe,你可以按F2将刚生成的快捷方式更名为“卸载”;

④     创建程序组:右击左列的User’s Programs Menu选择 Add——Fold,你可以将新创建的文件夹更名,当软件安装完毕后它将出现在程序组中,然后将上一步创建的两个快捷方式拖到新创建的文件夹中。

⑤     实现“卸载”的功能:选中安装和部署项目,按F4,复制ProductCode的内容,然后选中“卸载”快捷方式,按F4,将Arguments 的内容更改为:/x 刚复制的ProductCode的内容。

4)  实现在安装时注册组件:

右击安装和部署项目——View——Custom Actions,在出现的界面中右击左列的Install——Add Custom Action,选择Application Folder中的Primary output from RegDll(Active)。

5)  自动检测当前系统中MDAC、.Net Framework版本、Windows Installer3.1是否满足版本要求,如果不满足则安装:

右击安装和部署项目选择属性,在弹出的窗口中点击按钮“Prerequisites”。选中MDAC2.8、.Net Framework2.0、Windows Installer3.1;然后选中Download prerequisites from the same location as my application 单选按钮,点击“OK”,再点击“OK”。

6)  Rebuild项目生成安装包。

 

二.创建数据库安装包(Sql Server2000):

1)  原理说明:实际上是执行了创建数据库和还原数据库的SQL。

2)  制作步骤:

①     创建安装和部署项目,参考一。

②     将数据库备份为DB.dat,创建一个空文本文件CreateSql.sql(一个根据备份还原数据的脚本)。

③     创建数据安装的Class Library项目,然后新建一个 Installer Class。程序参照附带的项目文件夹中相应的类文件。

④     添加项目:右击项目——View——File System,在出现的界面中,右击左列的Application Folder——Add——Project Output,在弹出的窗口中选择上一步中创建的Class Library Project,然后点击“OK”按钮。

⑤     添加文件:右击项目——View——File System,在出现的界面中,右击左列的Application Folder——Add——File,在弹出的窗口中选择数据库备份文件DB.dat,CreateSql.sql;

⑥     添加用户界面:右击项目——View——User Interface,在出现的界面中右击Install——Start——Add Dialog,选择Textboxes(A),将其移动到Installation Folder 下方并选中,然后按F4,这里我们就用一个输入框用来输入sa密码,所以其它的都设置不可见,Edit2Visible、Edit3Visible、Edit4Visible都设置为False。

⑦     添加Custom Actions:右击项目——View——Custom Actions,在出现的界面中右击Install——Add Custom Action,在弹出窗口中选择第③步创建的项目(操作方法同一)。选中新添加的Custom Action,按F4,将属性窗口中的CustomActionData的内容设为:/pwd=[EDITA1] /targetdir="[TARGETDIR]\"。

3)  编辑项目生成安装包。

——————————————————————————————————————————————————

C#的c/s的winform,数据库为sql2k,
应用程序包括如下文件:
1.exe,1.dll,1.jpg,1.xml,donetsetup.exe以及数据库文件1.mdf,1.ldf(或数据库安装文件1.sql)。
打包要求:
(1)自动检测是否安装donet环境,如没安装,则提示自动安装。
(2)安装时自动安装数据库(附加mdf或运行1.sql)。
(3)在安装界面上能自定义一些安装图片或提示。




安装项目:
六个子项:文件系统、注册表、文件类型、用户界面、自定义操作、启动条件。
其中我们在打包过程中经常要用到的有文件系统、注册表、用户界面和自定义操作。
文件系统:向应用程序文件夹、用户的程序菜单、用户桌面下输出项目文件(四种类型:文件夹、项目输出、文件和程序集),还可以创建快捷方式(一般是放在桌面或程序菜单中)文件系统编辑器表示目标计算机上的文件系统,使用该工具可以指定应用程序文件安装的位置。在大多数情况下,希望将应用程序文件放在 Application Folder 中或在 Application Folder 下创建的子文件夹中。安装在目标计算机上以后,来自 Application Folder 的文件将位于 Program Files\Manufacturer\ProductName文件夹中,其中 Manufacturer 是安装 Visual Studio 时使用的公司名,而 ProductName 是用于部署项目的名称。可以在安装项目的属性窗口中重写这两个设置。
注册表:可以向注册表中插入键,在安装应用程序的同时创建注册表项。
用户界面:系统自动提供一组在安装期间显示的默认对话框。根据正在构建的项目的类型,所提供的这组对话框有所不同。使用用户界面编辑器,可以将对话框重新排序或删除对话框。在编辑器中显示的对话框树包含两部分:安装与管理员安装。安装部分包括终端用户运行安装程序时显示的对话框,而管理员安装部分包含系统管理员将安装程序上传到某个网络位置时显示的对话框。如果想构建一个没有用户界面的安装,只需在对话框树上删除安装部分中的所有对话框。或者,可以从一组可用的模板将对话框添加到安装项目中。
启动条件:使用启动条件编辑器来定义成功运行安装所必须满足的条件。例如,可以检查特定版本的操作系统。如果用户尝试在一个不满足条件的系统上安装,安装将中止。还可以配置启动条件来搜索目标计算机上的某个特定文件、注册表项或组件。在开始安装时,Windows Installer 执行搜索和条件评估,并按启动条件编辑器中所示的顺序执行。
自定义操作:自定义操作提供了一种在安装结束时执行任务的机制。例如,您可能希望在安装应用程序之前先配置好数据库,此时您可以用自定义操作来完成数据库的创建。自定义操作构建为单独的 .dll 或 .exe 文件,然后使用自定义操作编辑器添加到项目中,其中这些操作与不同的安装阶段有关。自定义操作编辑器包括几个单独的文件夹,用于放置执行 Install、Commit、Rollback 或 Uninstall 任务的二进制文件。
InstallerClass属性:如果添加的自定义操作是继承自Installer类(注意放在哪个文件夹下就要重载哪个相应的方法),该属性设为True,否则该属性设为False(注意:为False时要指定.dll文件的入口——EntryPoint属性)。
卸载:可以在安装应用程序中提供一个卸载的快捷方式,借助于系统提供的卸载程序msiexec.exe(在c:\windows\system32目录下),并把安装程序项目的ProductCode属性值赋给快捷方式的Arguments属性(注意:在属性值前加/x)
安装程序类:System.Configuration.Install命名空间下
Installer类有四个可以重载的方法,分别是Install,Commit,Rollback,Uninstall。
分别对应于自定义操作中的四个文件夹:安装、提交、回滚、卸载。
数据库安装:
1、 附加数据库
2、 执行创建数据库的Sql语句
3、 完全备份的数据库文件还原
可以将能生成数据库的的文件(分离的数据库文件、Sql脚本文件或完全备份文件)部署到应用程序文件夹下,然后在重载的Install方法里加入生成数据库代码(注意:生成数据库的代码应该在调用基类的Install方法后)。
数据库的卸载:首先删除数据库,再调用基类的Uninstall方法删除应用程序文件夹里的文件(顺序不能乱)。
几个特殊点:
1、 文件系统中的AlawaysCreate属性:本属性可以指定为False,然后Condition属性为空时相当于AlawaysCreate属性为True(Transitive属性必须为True才计算Condition属性的值)。Condition 属性可用于向安装程序添加条件逻辑,例如,仅为特定的操作系统版本安装某个文件。它还可以与文件搜索、注册表搜索或组件搜索一起使用,以在找不到指定项时使安装过程终止。可以是 Windows Installer 条件或属性,Property 属性中包含的值,文件、注册表或组件搜索中的 Name 属性,也可以是使用逻辑运算符的上述语句的组合。
2、 创建快捷方式(在程序中创建,可以有作为附加任务,根据用户的选择情况,有选择的创建):
添加引用:COM 选项卡并选择 Windows Script Host Object Model
创建对象:创建一个 WshShell 的实例对象,接着通过该对象的 CreateShortcut 方法来创建 IWshShortcut 接口的实例对象,传递给 CreateShortcut 方法的参数是将要创建的快捷方式的完整路径(包括该快捷方式的名字)。
设置属性:TargetPath、WorkingDirectory、WindowStyle、Description、IconLocation
生成快捷方式:调用 IWshShortcut.Save 方法生成快捷方式文件。

分类:

技术点:

相关文章: