- 浏览: 2049996 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (795)
- java (263)
- 聚类搜索引擎 (9)
- 经验之谈 (67)
- DSP (3)
- C++ (140)
- Linux (37)
- SNMP (6)
- Python (6)
- 数据库 (61)
- 网络 (20)
- 算法 (15)
- 设计模式 (4)
- 笔试题 (38)
- 散文 (35)
- 数据结构 (9)
- 银行知识 (0)
- 榜样 (9)
- Lucene (15)
- Heritrix (6)
- MetaSeeker (0)
- netbeans (12)
- php (3)
- 英语 (8)
- DB2 (0)
- java基础 (5)
- mongodb & hadoop (4)
- Javascript (7)
- Spring (4)
- ibatis & myibatis (1)
- velocity (1)
- 微服务 (0)
- paddle (1)
- 第三方 (0)
- 知识沉淀 (1)
- 建模 (0)
最新评论
-
0372:
标示对java很陌生!
中文乱码解决的4种方式 -
梦留心痕:
Java中\是转意字符, 可是你的这句话我没看懂,只要把得到的 ...
java中如何忽略字符串中的转义字符--转载 -
yanjianpengit:
[b][/b]
java为什么非静态内部类里面不能有静态成员 -
springdata-jpa:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
eclipse 如何把java项目转成web项目 -
qq1130127172:
,非常好。
(转)SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
InstallShield X制作安装程序杂记(前言)
公司要做一个应用软件产品包装,产品本身的质量,实在是不好意思说什么,那就不说了。我的任务就是要把这个产品包装得大气一点。软件的安装程序制作,有很多工具可以使用,但头儿指定了InstallShield X,那咱就硬着头皮上吧!(以下简称X)
X的安装,一看就与众不同,蓝色的背景,感觉很新颖。对于这个新版的安装制作工具,对我还是有很大的吸引力的。而正因为是‘新版本’,其组织结构和以前的版本有很大不同,所以可查的资料很少,无论是英文还是中文。当时只有http://blog.joycode.com/hopeq/archive/2004/08/02/29325.aspx
上有一点比较简单的介绍,所以主要还得靠自己了,经过大概一周的努力,遇到不少问题,总算是把一个比较常见的完整安装过程完成了。写下这些东西的目的,不光是给自己记录,还可以给像我当时那样的新手以一定的参考。文章组织也许不是很有逻辑性,所以叫‘杂记’,只要能给别人有一点用处,不至于误导,我心足矣。如果有不正确的地方,还请大家指出。
说明:本人的安装工程是ScriptInstallProject,所以文中的视图、功能项均以ScriptInstallProject为准。
InstallShield X制作安装程序杂记(1.视图概貌)
把视图篇写在首位,主要是我当时在看帮助的时候,看到很多诸如installscript view,dialog view之类的字眼,可我在面板上不能很快的找到,好像这帮助写的不是这个版本似的,这让我感觉很郁闷。而后来发现,这还是和不熟悉有很大关系。废话少说,咱们先来看看视图。
打开菜单View,第三个菜单项为View Bar,点击之后,在窗口左边会出现一个视图列表条,分Installshield,View list steps和Workspace三栏,Installshield栏中主要是一些简介、帮助信息,不必多看。View list steps里面即是installation Designer中的一级视图导航。Workspace栏,这正是关键所在。我所疑惑的帮助中所说的view,指的就是这里,这里列出了常用的二级视图。请记住:View Bar
另外一个重要的视图是Project Assistant(工程助理视图),在Workspace栏中有入口,但是可能出现你点击了那个按钮,却没有任何反应的情况,是为什么呢,原来问题还在View菜单,看最后一个菜单项Project Assistant,把它选中就可以了。
主工作区,有几个切换页(Start page/Project Assistant/Installation Designer)Start Page是可以不用看,其中Installation Designer是最主要的工作视图。
本篇主要给新手刚进入系统进行环境熟悉,具体视图的内容,将在后面的文章进行介绍。
InstallShield X制作安装程序杂记(2.Installation Information节点)
Installation Information,即安装信息。
(一).General Information:
1. Project Properties,
Author Name中填写作者姓名;Setup Languages,下面会列出一个语言列表,你可以根据需要进行勾选,InstallShield X默认的语言是English,如果你只要简体中文的话,需要先选中Chinese(Simplified),然后把在‘String Tables’下把Chinese(Simplified)设置为默认(点击右键,Make Default),再把English从列表中去掉。如果选择了多种语言,安装时会出现语言选择对话框。
PlatForms 选择这个安装程序可以在哪些操作系统中进行安装。
2.Add or Remove Programs:这栏信息与控制面板->添加/删除程序相关
Display Icon:选择在‘添加/删除程序’列表中显示的图标
Disable Change Button 是否让‘添加/删除程序’列表中的‘更改’按钮是否无效,默认为NO,即不Disable,有效。
Disable Remove Button 是否让‘添加/删除程序’列表中的‘删除’按钮是否无效,默认为NO,即不Disable,有效。
Publisher/Product URL 发行商/产品 网址
Read Me 可以填写readme文件名。
。。。接下来的几个都是类似的信息,不再一一列出,这些信息,将在‘添加/删除程序’列表中点击‘支持’信息弹出的对话框中出现。
3.Product Properties 产品属性
这个很简单,挑几个重要的说说:
TARGETDIR 目标文件夹。比如
<FOLDER_APPLICATIONS>\<IFX_COMPANY_NAME>\<IFX_PRODUCT_NAME> 这几个括号中的是变量。分别代表应用 程序文件夹\公司名称\产品名称,你也可以修改这个值,如去掉公司名称变量。
Executable File 主程序名称
Application Type 应用程序类型 我选的是Standard Windows Application 。这个值有对安装有什么影响,还没有试验。
4.String Tables 字串表。
点击下面的Chinese(Simplified)节点,可以看到字符定义表,这些变量,可能影响你安装的显示。你可以进行相应的修改、添加。
(二)Update Service更新服务 如果选了Enable Update Service为True,可以设置Host(主机)/Update Check Interval(更新检查间隔时间)等来配置更新服务。这个功能,由于我还没有加以试验。先不多说,以后再补充。
InstallShield X制作安装程序杂记(3.Orgnization节点)
(一)Setup Design 安装设计,这个节点实际是Features和Components的一个树结构
(二)Features 这个节点很重要。不知怎么翻译比较好,暂且叫‘安装部分’比如你的软件有几个部分,可以由用户选择安装,就需要在这里分别设置。各个Features之间可以有依赖关系,一个Features可以包括多个Components。(通过new Component就可以建立。) 从用户角度来看,这是产品的最小组成部分。
(三)Components 安装零件。可以是文件、快捷方式、注册表项等。多个Components组成一个Feature,从制作者角度来看,是安装程序的最小组成部分。
(四)Setup Types 安装类型。可以在这里维护安装类型,比如添加一个‘完整安装’,‘自定义安装’,‘最小安装’等。这个节点很简单,点击每个安装类型,可以选择相应的Feature,右边可以设置显示和描述的文字。
InstallShield X制作安装程序杂记(4.Application Data节点)
1.Files and Folders(文件与文件夹):这个一看就明白,有四个区域Source computer's folders(源机器文件夹,即制作安装程序的机器中的文件夹),Source Computer's files(源文件,列出源文件夹中的文件)
Destination computer's folders(目标机器文件夹,即要安装的机器上的文件夹),Destination computer's files(目标文件)。
(1) 前两个,跟资源管理器没多大区别,重点说说Destination computer's folder,这里一般会列出[AppDataFolder],[Common FilesFolder],[INSTALLDIR],如果需要其他文件夹,可以通过在根节点Destination Computer上点击右键->Show Predifined Folder来选择,这样就可以把文件安装到相应的系统预定义文件夹中。
(2) 对于一般的安装制作,用最后一个就可以。方法:在Source computer's folders中选定源文件夹,按紧鼠标,拖拽到[INSTALLDIR]节点下面,拖拽过来时,会弹出一个对话框,询问你是否要使用动态文件链接,我建议采用动态文件链接,这样,如果源文件发生了变化,都可以在编译时自动更新。接下来还会出现一个对话框,可以设定是否包含子目录(Include subfolders),是否自动注册所有的文件(Self-Register all files)等,一般说来,按Y,然后按一个OK就可以了。
(3) 如果要指定目的文件夹的读写权限,通过右键->Properties->Permissions来进行设置。
(4)一旦加入了文件夹,InstallshieldX就自动建立了一个Component,上一篇中已经说明了Component和Feature的关系。所以这里,特别要注意的是,要看清楚最上面的那一行字“Add new components to the feature”后面的下拉框,(2)中的文件,将和指定的Feature相关联,如果这里指定得不对,假如用户没有选定这个Feature,那这些文件就不会安装到指定的目录。
2.Redistributables: 直译是‘重新分配表’,我理解的就是安装所需要的一些附带包,可以翻译为‘分发包’点击就可以看到一个列表,把需要的包打勾就可以。
InstallShield X制作安装程序杂记(5.System Configuration节点)
1.Shortcuts(快捷方式):快捷方式主要是以下几个地方:
Start Menu(开始菜单)/Programs Menu(程序菜单)/Startup(启动)/Desktop(桌面)
(1)Start Menu,如果你装了UtraEdit就知道了,点击开始菜单,在上方就可以看到,这是比较cool的一种方式,堪称最快捷。而且很多软件都不往那里装,比较显眼,好找。
(2)Programs Menu,是大多数软件都采用的快捷方式位置,即在开始->程序中所列出。
(3)Startup,如果你的软件希望用户开机就运行,可以在这里建立,位于开始->程序->启动。
(4)Desktop,在桌面创建快捷方式。
几种快捷方式的配置方式都一样,在相应节点上点击右键,有一个New Shortcut(但我这里不知道什么原因该项无效),我使用的是New Advertised Shortcut,建立以后,右边会出现一个Key-Value表项,这里挑几个说说。
Display Name:快捷方式的名称。
Target:这里写快捷方式指向的文件名,对应快捷方式中的“目标”。比如<TARGETDIR>\bin\pmain.exe
Arguments:参数。比如主程序的运行参数是pmain -start,那这里就填写-start。
Working Directory:对应快捷方式中的“起始位置”,比较重要,如果不设置,而程序中使用GetCurrentPath可能获得的是快捷方式所在的位置(如桌面,而不是目标所在目录),从而导致程序路径错误。对应上面的Target,这里应该填写 <TARGETDIR>\bin。
2.Registry(注册表):可以把一些信息写入注册表。这个节点的工作区布局,和上篇所说的Files and Folders很相似,上面是源(Recource),下面是目的(Destination),如果要复制注册表项名称,用法很简单,在Source computer's Registery view中选定要修改的注册表项,按紧鼠标,拖拽到Destination computer's Registry中的相应节点中就可以;如果要新建表项,在Destination computer's Registry节点中点击右键,new->Key,如果要指定key值,使用相应的菜单项,跟在注册表中直接操作差不多,这里就不多说了。
----以下几个节点在MSI Project中有,InstallScript Project中却没有。关于××× Project,我一直很困惑,我到时专门写一个文章,提出我的困惑。
3.ODBC Resources(ODBC 源)
4.INI File Changes(ini文件更改)
5.Environment Variables(环境变量)
这几个节点的配置很简单,我就不说了。
InstallShield X制作安装程序杂记(6.Server Configuration节点)
1.Internet Information Services(IIS配置):主要是给Web项目制作使用的。
这里有一个根IIS Configuration,右键->Add web side(建立web站点),建立站点时候,可以在站点上面建立虚拟目录(New Virtual Directory)。右边的Key-Value表中有很多条目,只要你会设置IIS,这些都是小菜了。
2.SQL Servers(MS SQL Server配置):用于SQL Server的配置,我看了一下,好像可以通过SQL脚本(script)在安装时建库,建表等。一言以蔽之,可以作为数据库的初始化。
在根节点SQL Servers上,右键->new SQL Connection,填写相应数据即可。
--这个大节点,我没有实际测试,不过比较简单,属于一看就明白的,就不一一翻译了,有问题单独交流。
InstallShield X制作安装程序杂记(7.Behavior and Logic节点)
1.InstallScript(安装脚本):安装文件是InstallScript Project的重头戏,可以通过编写安装脚本文件,来对安装程序进行深层次的处理。其中提供了一些标准函数、事件,也可以自定义函数,代码风格有点类似C。
如何使用脚本来“滋润”安装程序,后文将用专门篇幅实例说明。
2.Support Files/Billboards(支持文件,后面的不知道咋翻译好):一些安装过程中需要读写的文件,可以添加到这里。后文实例中将有说明。
InstallshieldX安装制作杂记(实例之安装完成)
我们可以看到,很多软件在安装完成之后,可以有一些选项,比如“查看ReadMe”,“运行程序”等等,这是怎么做到的呢?
关键词:OnMoved、SdFinish
1.InstallShieldX脚本中有一个OnMoved事件。这个事件在需要安装的文件拷贝完成之后触发;
2.SdFinish是一个标准对话框函数,函数原型为SdFinish ( szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2 );从参数中可以发现,这里只提供最多两个选项。
实例代码如下:
function OnMoved()
STRING szTitle;
STRING szMsg1, szMsg2,szOpt1,szOpt2;
BOOL bvOpt1, bvOpt2;
STRING szApplicationPath,szApplicationCmdLine,szCmdLine;
begin
if (MAINTENANCE) then return 0;endif;//如果不是安装状态,比如修改/卸载状态的时候,则不执行。
szTitle = "安装完成";//对话框的标题
szMsg1 = "%P 安装已经完成.\n" +
"请根据需要选择下面的选项.";//%P为软件产品名称
//如果要单独在这里设置产品名称,在之前使用如下两句
// szProductName = "某某软件";
// SdProductName (szProductName);
szMsg2 = "点击‘完成’按钮完成%P安装.";
szOpt1 = "阅读自述文件";//如果这里为空,则表示只有一个选项
szOpt2 = "运行程序";
SdFinish (szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2);
if (bvOpt1) then
LaunchApp ('notepad.exe',TARGETDIR ^ "\\readme.txt");//LaunchApp 用来运行某外部程序
endif;
if (bvOpt2) then
LaunchApp (TARGETDIR ^ "\\App.exe","");
endif;
end;
InstallshieldX安装制作杂记(经验点滴)
1. 安装类型:
Universal Project是为了适应不同操作系统而作。
InstallScript Project最为灵活,Windows Installer页中的project需要 windows installer server 支持,但有速度快,文件小的优点。
2. InstallScript MSI project 可以转换为InstallScript Project:菜单project->Convert to InstallScript Project.
3.常用函数:
NumToStr,StrToNum 整型和字符串相互转换。
InstallshieldX安装制作杂记(实例之自定义对话框)
如何调用自定义对话框?Installshield帮助中有说明,但有一些环节弄不好就无法实验成功。比如ControlID,DialogID等。
通过自己的摸索,我完成了自定义对话框的建立、事件编写已经调用,现整理出来,希望能给大家提供帮助。
1.新建对话框
(1)在User Interface->dialogs中新建一个Dialog,命名为fbysssDialog;
(2)通过Control tool bar加入一个Text Area,Text属性填入"我的自定义对话框";
(3)加入三个Push Button,分别设置Text属性为Back,OK,Next,Control Identifier分别设置为14,13,15。其他控件可以根据需要添加;
(4)Additional Tools->Direct Editor找到Dialog,设置fbysssDialog的ISResourceID为10333(如果有重复就改变数字)。
2.编写对话框事件
新建一个脚本文件,命名,比如叫"fbysssDialog.rul"
粘贴如下代码:
#define RES_DIALOG_ID 10333//对话框的ID
#define RES_PBUT_NEXT 15 // Next 按钮的ID
#define RES_PBUT_OK 13 // OK按钮的ID
#define RES_PBUT_BACK 14 // BACK按钮的ID
#include "Ifx.h"
export prototype ExFn_DefineDialog(HWND);
function ExFn_DefineDialog(hMSI)
STRING szDialogName, szDLLName, szDialog;
NUMBER nDialog, nResult, nCmdValue;
BOOL bDone;
HWND hInstance, hwndParent;
// STRING sValue;
begin
szDialogName = "fbysss的自定义对话框";
hInstance = 0;//默认值
szDLLName = ""; ////默认值
szDialog = "";//如果指定了对话框的ID,这里就设置为空字符串。
hwndParent = 0;//保留参数,必须为0
nResult = DefineDialog (szDialogName, hInstance, szDLLName,
RES_DIALOG_ID, szDialog, hwndParent,
HWND_INSTALL, DLG_MSG_STANDARD|DLG_CENTERED);
// 错误检查
if (nResult < 0) then
MessageBox ("出错了.", SEVERE);
bDone = TRUE;
abort;
endif;
bDone = FALSE;
//循环
repeat
//显示对话框,nComValue返回在对话框中的事件,如果正常,返回Control ID
nCmdValue = WaitOnDialog(szDialogName);
//NumToStr(sValue,nCmdValue);
//MessageBox(sValue,INFORMATION);
switch (nCmdValue)
case DLG_CLOSE:
// 关闭窗口
Do (EXIT);
case DLG_ERR:
MessageBox ("无法显示自定义对话框,安装取消.", SEVERE);
abort;
case DLG_INIT: ;
//初始化,啥不不干
case RES_PBUT_OK:
// OK按钮被按下
MessageBox("OK按钮被按下了。",INFORMATION);
case RES_PBUT_NEXT:
MessageBox("Next按钮被按下了。",INFORMATION);
bDone = TRUE;
case RES_PBUT_BACK:
MessageBox("BACK按钮被按下了。",INFORMATION);
bDone = TRUE;
endswitch;
until bDone;
//关闭对话框
EndDialog (szDialogName);
//释放内存
ReleaseDialog (szDialogName);
end;
3.调用对话框
在Setup.rul头部加入#include “fbysssDialog.rul“
ExFn_DefineDialog(0);//调用,这句话根据需要写在相应的地方。比如一开始就显示,写在function OnFirstUIBefore() 的begin之后。
编译运行,是不是看到效果了?cool!
发表评论
-
流式计算
2022-02-07 14:31 286private void postHandle(List& ... -
消息队列使用的四种场景介绍
2018-08-09 16:34 2478以下介绍消息队列在实际应用中常用的使用场 ... -
设计模式
2018-04-11 16:49 9861.桥梁模式,将抽象部分与实现部分隔离开,抽象部分持有实现 ... -
Spring boot web可以访问Service和Mapper层
2018-03-26 16:42 2872Spring boot的web层可以访问Service层,然 ... -
FreeMarker的基础语法使用 && 心得和技巧
2018-01-10 10:03 2063FreeMarker是一个模板引 ... -
webService----wss4j+cxf实现WS-Security(基于UsernameToken)
2017-10-23 18:58 1561分享一下wss4j+cxf基于UsernameToken的安 ... -
Spring MVC之LocaleResolver(解析用户区域)
2017-09-23 15:55 2534为了让web应用程序支持国际化,必须识别每个用户的首选区域, ... -
(转)java泛型
2016-11-12 20:29 1650http://www.cnblogs.com/lwbqqyu ... -
java中如何忽略字符串中的转义字符--转载
2016-06-28 16:42 9916原文地址:http://my ... -
(转)关于JAP FetchType.LAZY(hibernate实现)的理解 .
2016-04-27 15:22 5108JPA定义实体之间的关系有如下几种: @OneToOne ... -
(转)hibernate annotation注解方式来处理映射关系
2016-04-26 16:52 1841http://www.cnblogs.com/xiao ... -
代码片段,导出的文件头
2015-11-18 20:34 1606public static void setDownload ... -
(转)为什么要两次调用encodeURI来解决乱码问题
2015-08-03 20:19 2489地址:http://blog.csdn.net/howla ... -
杀死进程
2015-07-21 14:54 1293sudo lsof -i :9000 COMMAND P ... -
批处理batch,执行多个SQL语句
2015-07-15 19:21 10616批处理batch,执行多个SQL语句。 ... -
中文乱码解决的4种方式
2015-07-03 14:20 2630目前收集到4中方法,中文传参一documentPath为例: ... -
GET请求的中文乱码问题及处理意义
2015-07-03 13:47 6635首先看一段乱码的程序 ... -
java.ByteArrayInputStream与ByteArrayOutputStream再次理解
2015-03-16 17:59 3242第一次看到ByteArrayOutputStream的时 ... -
(转)SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
2014-07-28 17:42 2282概述 继 Spring 2.0 对 Spring MVC ... -
java中序列化的serialVersionUID解释
2014-07-25 09:26 1891serialVersionUID: 字面意思上是序列化的版本号 ...
相关推荐
installshield安装制作杂记 installshield x
《InstallShield6.x安装程序设计与制作》是针对软件开发者,尤其是使用DELPHI语言的开发者,提供的一本详尽的指南,旨在帮助他们掌握利用InstallShield工具创建专业级安装程序的技术。InstallShield是一款广泛使用的...
《引人入胜Installshield6.x 安装程序设计与制作》是一本深入探讨InstallShield 6.x安装程序创建的专业书籍,它旨在帮助开发者和系统管理员掌握如何利用这个强大的工具来构建高效、用户友好的软件安装包。...
引人入胜Installshield6.x 安装程序设计与制作.pdf 有完整书签
**InstallShield X**是一款强大的安装程序制作工具,它能够帮助开发者轻松创建适用于各种平台的操作系统安装程序。无论是在Windows环境下还是跨平台环境中,InstallShield X都能提供一体化的解决方案。 #### 主要...
对于 InstallShield X Express 的版本演变历史,虽然原始链接已不可访问,但从现有资料来看,InstallShield X Express 是一款用于创建安装程序的专业工具,特别适用于 .Net 开发者。它简化了安装包的制作过程,让...
总结来说,使用InstallShield6.x制作VB安装程序涉及项目创建、文件添加、路径配置、注册表操作、依赖处理、权限设置以及自定义脚本等多个环节。尽管这个版本相对老旧,但其基本流程和原理仍适用于现代的安装程序制作...
Install Shield X 10.0 Premier Edition 安装程序制作指南 Install Shield X 10.0 Premier Edition 是一款功能强大且灵活的安装程序制作工具,能够帮助开发人员快速创建专业的安装程序。该工具集成了 DevStudio、...
通过对以上内容的学习,我们可以了解到 InstallShield X 是一款非常强大的软件安装包制作工具,它不仅支持创建复杂的安装程序,还可以集成 SQL Server 数据库的创建与初始化,使得整个安装流程自动化且高效。...
InstallShield6是一款经典的安装制作软件,它在IT行业中广泛用于创建Windows应用程序的安装包。本教程旨在帮助用户了解如何使用InstallShield6来构建安装程序,以及如何利用CHM(Compiled HTML Help)格式的文档进行...
提供的"Installshield6.x 安装程序设计与制作.pdf"和"Ishield_book_CD.rar"可能包含了更深入的教程和实战案例,帮助开发者掌握更多高级技巧,如自动更新、多语言支持、错误处理等。 总之,InstallShield作为一款...
InstallShield是一款强大的安装制作软件,尤其在Windows平台上的应用广泛,提供了集成化的解决方案,适用于各种操作系统和设备。该软件能够帮助开发者轻松创建Windows MSI安装程序、InstallScript安装脚本,甚至是跨...
#### 二、WebForm程序安装流程 - **项目创建**:在新建项目时选择`Web project`类型,以便生成针对Web服务器(如IIS)的安装配置。 - **项目特点**: - **IIS集成**:项目生成后自动包含目标计算机的IIS根目录配置...
本书对当今各种Windows环境下的安装程序制作技术作了比较祥尽的介绍,同时针对目前最流行的工具vC、vB、Delphi开发出应用程序的安装程序的有关制作过程作了阐述。本书重点介绍了目前国际上最流行的,被誉为“万能”...
总的来说,InstallShield X Express Edition 3是一款强大的安装包制作工具,通过其直观的界面和丰富的功能,可以帮助开发者高效地创建出符合用户需求的安装程序。合理使用提供的序列号并参照教程学习,将有助于提高...
利用InstallShield2021制作AE(ArcGIS Engine10.2 打包)开发的应用程序的安装包 本文将详细介绍如何使用InstallShield2021制作AE(ArcGIS Engine10.2 打包)开发的应用程序的安装包。该安装包将包含AE相关的文件、...
### VS2010制作安装程序包详解 随着软件项目的逐步推进,到了产品发布阶段时,制作一个方便用户使用的安装程序变得尤为重要。本文档将基于提供的文件内容,详细介绍如何使用Visual Studio 2010(简称VS2010)来创建...
InstallShield作为软件安装制作工具的业界老大,她的的多平台安装程序制作软件,可以制作任何平台任何系统下的安装程序, 如Mac OS X、OS/400、Windows、AIX、 Solaris、Linux、HP-UX 或是各种类型的 Unix 系统。...
本文档将详细介绍如何使用InstallShield 12来制作一个包含.NET 4.0环境检测及自动安装功能的安装包,并解决在安装过程中可能出现的问题。通过遵循本文档中的步骤,您将能够有效地避免遇到一些常见的技术难题。 ####...