分享
 
 
 

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

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

如何使用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的功能是等价的。文章使用独立的ISIDE为示例

三、本文中您将了解到

(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_Acce=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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有