如何使用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