如何使用InstallShield X Express 部署.Net WinForm程序

类别:.NET开发 点击:0 评论:0 推荐:

      如何使用InstallShield X Express 部署.Net WinForm程序

 

题记:今天是忙了半年的系统发布测试使用的日子,故写此文以示纪念

一、关于InstallShield X Express的版本演变问题请参阅

http://blog.joycode.com/hopeq/archive/2004/07/26/28421.aspx

 

二、InstallShield X Express for Visual Studio .NET 2003 为.Net 提供了内在的支持。所有的操作均在VS IDE中完成,其效果与InstallShield X Express(下文中将简称IS)独立IDE的功能是等价的。文章使用独立的IS IDE为示例

三、本文中您将了解到

(1)       如何添加自己的工程文件

(2)       如何添加相关的组件,如MDAC

(3)       如何自定义操作,还给出常用的注册操作示例。

(4)       如何发布DotNetFrameWork

四、我们开始

    

                               这就是IS的主界面

 

1.  单击FileàNew 新建一项工程,出来下图



             图2 新建工程

按道理来讲,我们要发布C#程序,本应选择C#.Net Wizard项,可选这项后,在后面的向导中居然要你选择一C#工程,并自动用VS打开(不解其意),好,题话回来。请按图2的设置,选择Express Project,输入工程名,保存路径,注意的地方是Project Language,默认是英语,如果你的工程里有中文信息的话(比如公司名称用中文)请一定要选择Chinese(simplified),切记,不然是乱码。单击OK

出现了图3



             图3

请注意主窗体上方多了Proejct Assistant,Installtion Designer,现在的界面就是前者,其操作相当于图形操作了,操作流程就在图3的下方,单击Application Information,

出现图4

               图4

这地方很简单,写上你的公司名称,应用程序的名称,即安装程序的名称。还有版本号,以及你公司的主页,下面是否自动通知用户有更新,下面是选择添加、删除时的要显示的图标。这些不太重要,我们再单击,Installation Requirements,是指程序安装时的系统需求,上面选择操作系统,下面选择组件,因为我们需要MDAC,所以选择MDAC Version 2.7。

单击 Installation Architecture,这里默认即可。

再单击 Applicatin Files,这里是添加自己文件的地方,请看下图


                图5

在图5的左边是,是目标电脑(即安装者的电脑)的路径,一般我们在Program files目录下,当然你也可以更改” My Product Name[INSTLLDIR]”以及My Company Name目录,不过,它这里也合理了,先公司,在公司的产品名称。

好,现在你可以按右边的Add Files和Add Folders里,我们先添加文件,选择指定要发布的文件后,会出来一个提示框,要你是否寻找依赖文件,这时你选择yes to all,这里的话,如果你.net文件包含其他组件,打包的时候它将自动包含组件了。

同理,目录也是同样的方法。

单击Application Shortcuts,出现下图



           图6

如果要在桌面创建快捷方式,请先选定文件,再单击create shortcut on desktop.

下面是一扩展多个图标,即在属性里你可以选择不同的图标。

单击Application Registry,相关的注册表操作,如图7



              图7

选择yes,现在可以用注册表编辑了,你可以添加一些静态项的数据了,当然如果要在注册表里写上用户安装的路径怎么办? 别急,在后头介绍:)

单击Installation Interview,出现图8

安装时,用户能否修改安装路径

安装结束后,是否直接启动程序

安装时,用户能否修改安装路径

自己的许可文件




             图8

具体的说明,我已经用图标标出了。

再单击Build Installation,选择Single Executable。即最后打包成一个执行文件。

 

讲了这么下面的步骤才是最关键的,转到Installation Designer方式



            图9

如图选中 MDAC 2.7,如果目标没有安装的话,安装程序将在自动安装。

好的,现在我们才自定义操作,呵呵,可以自由操作了

单击左边的Define Setup Requirements and Actions-àCustom Actions-

这里的罗列的安装过程的全部顺序,你可以想插入到哪个步骤都可以,我们选择在文件复制到对方的目标电脑后再操作,在After file Transfer项,右键New Exe,

在右边的Source Location里选择File Exists on Target Computer,然后再File Location里选目录。最重要的是下面,我们如何把用户选择的路径写到注册表里呢?

在File Name and Command ,选择文件名 后面加参数,比如写注册表的程序叫Reg.exe.那我们在FileName and Command Line  里如何填呢?

Reg.exe [INSTALLDIR]

好的,这样就可以把安装路径传给Reg.exe了,还有一点很重要就是Reg.exe里如何组织接收这个参数呢?

请看下面的代码

static void Main(string[]  args)

        {

              //目录后已带\

            string path=string.Empty;

            foreach(string arg in args) {        

                   path+=arg;

            }

            path=path.Trim();

            if(path.Length ==0) {

                return ;

            }          

            SoftInitRegister(path); //开始注册

        }

上面的代码有问题吗? 呵呵,有问题。如何修改? 简单,把

path+=args; 改成path+=args+”  “;

呵呵,很简单,自己注意一下。一些注册操作方法,这是我系统的注册方法,呵呵,漏了:)

 

public static void SoftInitRegister(string InstallPath) {

             

            string ApplicationExec=InstallPath+"CEIM.EXE";//主应用程序

            string ApplicationExec_Acc e=  4+"CEIM.EXE %1";//主应用程序+附件执行

                             

            //写软件安装的地方

            RegistryKey regkey = Registry.CurrentUser;

            RegistryKey writekey=regkey.CreateSubKey(@"Software\CEIM");

            writekey.SetValue("AppBasePath",InstallPath);

 

            //让CEIM随windows开启时自动加载

                regkey = Registry.LocalMachine;

                writekey=regkey.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");

                writekey.SetValue("CEIM",ApplicationExec);

 

            //写右菜单---文件关联

            regkey = Registry.ClassesRoot ;

           

            writekey=regkey.CreateSubKey(@"*\Shell\CEIM\command");

           

            writekey.SetValue("",ApplicationExec_Acce);//第一个参数对应注册表的"默认"

          

            //写右菜单---目录关联

            writekey=regkey.CreateSubKey(@"Folder\shell\CEIM\command");

            writekey.SetValue("",ApplicationExec_Acce);//第一个参数对应注册表的"默认"

 

           

        }

 

 

OK,我们也应该到最后一步了,慢着,你还没有讲如何发布dotnetFramework呢?

刚才在叫你选MDAC 2.7的组件时,不是有很多的组件让你选择吗? 我找不到啊? 呵呵,对了,那里确实没有,怎么办? 看下面



          图10

我说一下操作路径您就明白了

Prepare for Release----àBuild Your Release----接着把设置按图10设置即可

OK了,按菜单build-àbuild singleimage,大功告成!

 

说实在,这是我第一次写教程(雅称),今天也高兴,上次的那感想说,要写点东西的,迟迟没写,这算是补上了,写东西还真花时间,都快3个小时多了。不过能与大家分享自己的体会是最快乐的。

 

                             登峰

                                                                                                                                                                     1/10/2005

本文地址:http://com.8s8s.com/it/it42067.htm