CN102270129A - 将软件产品分发为包括脚本逻辑和外部资源的可执行文件 - Google Patents
将软件产品分发为包括脚本逻辑和外部资源的可执行文件 Download PDFInfo
- Publication number
- CN102270129A CN102270129A CN2011101599416A CN201110159941A CN102270129A CN 102270129 A CN102270129 A CN 102270129A CN 2011101599416 A CN2011101599416 A CN 2011101599416A CN 201110159941 A CN201110159941 A CN 201110159941A CN 102270129 A CN102270129 A CN 102270129A
- Authority
- CN
- China
- Prior art keywords
- file
- single executable
- executable file
- installation
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
涉及将软件产品分发为包括脚本逻辑和外部资源的可执行文件。利用安装脚本安装包括程序文件的软件产品,通过使用单个可执行文件来实现。管理安装操作的安装脚本可由一计算设备生成。所述安装脚本可与和安装操作相关联的程序文件相组合。包括组合后的安装脚本和程序文件的单个可执行文件可由所述计算设备生成。所述单个可执行文件可由所述计算设备分发。所述单个可执行文件可由所述计算设备执行。执行所述单个可执行文件可包括查询其内部的清单,所述清单包括所述单个可执行文件外部的资源文件列表。所述单个可执行文件可利用所述资源文件来安装所述程序文件。
Description
技术领域
本发明涉及分发软件产品,尤其涉及将软件产品分发为包括脚本逻辑和外部资源的可执行文件。
相关申请的交叉引用
本申请是2006年11月1日提交的题为Packaging Software Products AsSingle-File Executables Containing Script Logic(封装软件产品为包括脚本逻辑的单个文件可执行文件)的美国专利申请第11/590,979号的部分延续,并且通过引用结合于此。
背景技术
软件产品和更新需要用于可执行程序文件的多种分发介质(例如数字多功能盘或“DVD”)。很多实例中,可执行程序文件需要大量的资源文件,例如用于安装软件产品更新等多种活动的箱(“CAB”)文件。然而,目前由于与CAB文件和基于计算机的文件系统(例如FAT32文件系统)相关联的尺寸限制,即使分发介质(例如DVD)本身能够存储附加数据,可执行程序文件也仅限于单个CAB文件。由于上述限制,为了访问用于安装软件产品或相关更新的任何所需的附加CAB文件,必须利用附加的可执行程序文件。利用多个可执行程序文件的缺陷包括用于分发介质的更长的生产时间(即,各可执行文件必须独立生成)、单个分发介质上多个可执行程序文件的强制分区和/或分发介质的附加拷贝、以及延长了使用数字签名签署数据所需的时间。本发明的各个实施例正是针对这些考虑事项及其他而做出的。
发明内容
提供本发明内容是为了以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
各实施例用于通过使用单个可执行文件来安装包括程序文件的软件产品。用于管理安装操作的安装脚本可由计算设备生成。该安装脚本可与和所述安装操作相关联的程序文件相组合。包括组合后的安装脚本和程序文件的单个可执行文件可由所述计算设备生成。单个可执行文件可由所述计算设备分发。单个可执行文件可由所述计算设备执行。执行所述单个可执行文件可包括查询其内部的清单,所述清单包括所述单个可执行文件外部的资源文件列表。所述单个可执行文件可利用所述资源文件来安装所述程序文件。
通过阅读下面的详细描述并参考相关联的附图,这些及其他特点和优点将变得显而易见。应该理解,前面的概括说明和下面的详细描述只是说明性的,不会对所要求保护的各方面形成限制。
附图说明
图1示出根据各实施例的安装可执行分发的概念图;
图2示出了安装可执行文件的示例创建的示意图;
图3示出了根据各实施例的使用脚本安装可执行文件的示例安装过程;
图4示出联网系统中安装可执行文件的使用分发;
图5是其中可实现各实施例的示例计算操作环境的框图;
图6示出根据各实施例的资源文件清单和存储在便携式存储介质上的外部资源文件的示例;以及
图7示出根据各实施例的使用单个可执行文件安装包括程序文件的软件产品的过程的逻辑流程图。
具体实施方式
如上简述,各实施例用于通过使用单个可执行文件来安装包括程序文件的软件产品。用于管理安装操作的安装脚本可由计算设备生成。所述安装脚本可与和安装操作相关联的程序文件相组合。包括组合后的安装脚本和程序文件的单个可执行文件可由所述计算设备生成。所述单个可执行文件可由所述计算设备分发。所述单个可执行文件可由所述计算设备执行。执行所述单个可执行文件可包括查询其内部的清单,所述清单包括所述单个可执行文件外部的资源文件列表。所述单个可执行文件可利用所述资源文件来安装所述程序文件。
在以下详细描述中,参考了构成了详细描述的一部分并作为说明示出了各具体实施方式或示例的附图。可组合些方面,可利用其他方面,并且可以做出结构上的改变而不背离本发明的精神或范围。因此,以下具体实施方式并不旨在限制,并且本发明的范围由所附权利要求及其等效方案来限定。
虽然在结合在个人计算机上的操作系统上运行的应用程序执行的程序模块的一般上下文中描述了各实施方式,但是本领域技术人员会认识到各方面也可以结合其他程序模块实现。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员会理解,各实施方式可以用其他计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程消费者电子产品、小型计算机、大型计算机等等。各实施方式还能在任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
各实施方式可被实现为计算机过程(方法)、计算系统、或者如计算机程序产品或计算机可读介质等制品。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括以存储如计算机可读指令、数据结构、程序模块或其它数据等信息的任何物理方法或技术来实现的易失性和非易失性、可移动和不可移动硬件存储介质。计算机存储介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁性存储设备,它们可用于存储所需信息。
通信介质包括任何信息传递介质。例如,根据一实施例,通信介质可包括有线网络或直接线连接。根据另一实施例,通信介质可包括诸如声学、RF、红外线、以及其它无线介质等无线介质。根据又一实施例,通信介质可以在诸如载波或其它传输机制等已调制数据信号中包括计算机可读指令、数据结构、程序模块或其他数据。术语“已调制数据信号”指的是一个或多个特征以在信号中编码信息的方式被设定或更改的信号。上述的任意组合也应包含在计算机可读介质的范围内。计算机可读介质还可被称作计算机程序产品。
参考图1,其示出根据各实施例的安装可执行分发的概念图。根据一实施例,软件产品或更新可通过包括便携式介质如DVD的各种介质进行分发。此外,脚本安装可执行文件可允许安装操作的自定义和可扩展排序。根据各实施例,封装工具依据各安装文件和安装脚本创建单个自提取的可执行文件,所述安装脚本能灵活地完成必要的检查、安装软件产品并执行任何安装后的操作。
软件产品或更新的安装文件通常包括大量的数据文件、DLL和其它类型文件。在某些情况下,这些文件被组织为多个目录。除了潜在的下载问题,处理多个文件还增加了未授权使用(例如各文件更容易被篡改)和限制安装过程的可自定义性的风险。
如图1所示,程序文件104可包括大量不同类型的文件。可使用如扩展标记语言(XML)的结构化语言生成脚本文件102,使得根据预定义策略排序和/或链接与所述安装相关联的动作。根据一模式的脚本可允许使用替换对话、语言和其他安装选项。脚本文件102和程序文件104可被组合成安装可执行文件106,用于紧凑、可下载的分发方法。安装可执行文件106可通过如使用便携式介质的多种方式分发给用户(如用户108)。
一旦载入如桌上型计算机110的计算设备中,所述安装可执行文件就可以被执行,其中所述脚本控制与用户108进行交互的各操作的执行,执行安装前检查,拷贝和/或展开程序文件,配置和/或注册组件等。安装后的任务像激活已安装的应用程序112、删除不必要的文件等。
如上所述,定义所述安装脚本的所述模式可以是XML形式的。但是,各实施例不限于XML编程语言和形式。将软件产品封装为包括脚本逻辑的单个可执行文件可以通过使用此处描述原理的任何语言、形式和结构来实现。
图2示出了安装可执行文件的示例创建的示意图。根据各实施例,单个文件安装系统的核心在于所述安装脚本202。所述脚本将安装封装包的行为定义为按照特定顺序执行的动作列表。所述动作进而控制通过对话与用户的交互,执行安装前检查,查询和配置系统组件,以及安装程序文件。
程序文件204和安装脚本202被组合成单个文件,从而生成安装可执行文件206。所述安装可执行文件可被压缩或以其他方式处理以用于本领域中任何已知方式的分发。例如密码保护的安全措施也可被集成入该安装可执行文件206中。所述安装可执行文件206接着以结合如图4中描述的多种方式分发给用户。
图3示出了根据各实施例的使用脚本安装可执行文件的示例安装过程。可执行文件(306)通过安装脚本302中定义的一系列动作来控制安装操作。
根据各实施例,安装可执行文件306符合一可扩展性模型,其中能载入动态链接库(DLL)并能使用特定签名访问多个函数,从而允许添加那些无法使用XML语言“编码”的新特征。通过这种方式,可以改变UI体验而不影响封装包的行为。
所述封装包的行为可以以按照特定顺序执行的动作列表的形式定义在一XML文件中。所述顺序可按照所述XML文件中各元素的顺序来定义。其中每个动作可被定义为一个<Action>元素,该元素具有定义什么类型的动作被调用的类型属性。一段示例代码提供如下:
上述动作是“YesNoPrompt”类型的一个动作,解释器执行时向用户提示一个“YES/NO”消息框。上述示例代码还表明各动作元素可包括执行其所需的全部信息。此时,所述动作包括标题文本、提示文本和如果用户按下“NO”键怎么办,$(TEST.TITLE)是对属性的引用。
安装可执行文件306一旦被执行将执行多项任务。所述任务可包括检测、用户交互、安装和安装后的任务。检测可包括确定环境参数,例如系统能力(处理器速度、可用的内存和硬盘空间等)、现有产品和/或产品资格、现有组件的版本、语言、用户偏好(如货币、日期和时间等)。
对于更新的情形,可执行文件在更新之前可检测补丁或更新是否是系统所需或者对系统是适用的。可建立脚本以便所述可执行文件运行于“检测”模式,用以确定是否需要所述补丁,而非安装该补丁。该模式为用户提供了一种简单的方式用以了解所述补丁是否是所需的、已被安装的或不适用的。一旦脚本确定了所述更新的适用性,在安装有效载荷之前可检查必要的安装标准。该检查包括但不限于,具有资格的产品、偏好语言、操作系统和/或平台以及所需的基线更新。某些情况下,更新的顺序对程序至关重要。所述脚本确定哪些更新已经安装,并且根据规定的顺序安装任何附加的更新。如果补丁具有例如届满日期的时间限制,所述脚本可对此进行确认并建议用户下载和安装一个不同的补丁。用户还可被转至一个下载中心,他们可在那里自己下载封装包。
使用用于描述各动作的基于模式的脚本能够实现自定义对话、动作和各个动作的自定义执行。因此出于特定目的,开发者可通过改变安装脚本302和自定义安装封装包来轻松修改所述安装可执行文件。安装脚本302还提供了创建适用于任何语言的通用封装包的能力。每个封装包可包括所需的各种语言的语言资源。
对于更新封装的情形,更新封装包的部分有效载荷可以是终端用户和其他系统所需的更新元数据。例如,可使用基于XML模式的脚本和分发方法在数据库中保存一份补丁清单。
根据某些实施例,所述安装脚本302控制的附加安装和安装后的任务可包括向监控中心传送失败报告、组件的激活、对系统资源的查询以收集有关现有组件和注册表操作的信息。甚至可包括时间敏感限制,使得如果安装产品的预定义期限过期,所述脚本就可以去下载中心检查当前的更新。根据其他实施例,安装脚本302还可包括定义对安装参数的限制的规定,例如对于给定的语言或用户ID要安装哪些组件。
在一操作中,安装脚本302使用上述检测动作318来初始化安装过程。一旦收集到足够的信息,脚本通过提示对话314和接收用户输入316与用户交互。用户提供的信息,例如产品序列号、用户姓名等,可在输入验证操作320中进行验证。输入验证320后进行安装操作322,例如拷贝程序文件304、配置和注册组件等。某些实施例中,如上述描述的安装后的操作可在安装操作322成功结束后执行。
各实施例不限于图1至图2示出的各示例操作和组件。对于使用包括脚本逻辑的单个文件可执行文件的软件安装封装系统,可使用此处描述的原理实现其他基础结构。
参考下面的附图描述各方面和示例性操作环境。图4、图5及相关联的讨论旨在提供对其中可实现各实施例的合适计算环境的简要概括描述。
图4示出联网系统中安装可执行文件的使用分发。该系统可包括服务器、客户机、因特网服务提供者、以及通信介质的任何拓扑结构。该系统还可具有静态或动态拓扑结构。术语“客户机”指的是客户应用程序或者用户用来执行与安装软件产品相关联的操作的客户设备。尽管联网产品安装文件分发系统可包括更多的组件,但结合此图仅讨论那些相关的组件。
根据各实施例的一个典型操作中,服务器432执行一个或多个应用程序,用于为软件产品准备安装脚本,从数据存储434中获取与安装所述软件产品相关联的程序文件,以及将所述脚本和程序文件组合成单个文件安装可执行文件。接下来,所述单个文件可执行文件通过一个或多个网络438,或者使用便携式存储介质分发给用户。便携式存储介质可包括存储和分发文件的任何方式,例如CD-ROM、DVD、软盘、闪存驱动器等。
服务器438可包括具有与软件产品安装相关联的各种功能的附加程序,例如错误监控程序、当前更新下载程序等。上述功能及类似功能也可由其他服务器提供。如前述提及的,通过网络下载所进行软件产品的分发已经变得日益普遍。以便一般的,有两种主要的在线软件分发情形。第一种情形是完整软件程序的分发,这在网络上愈加常见。第二种也是更为常见的情形是网络上产品更新(例如安全更新、功能性补丁等)的分发。
网络438可包括诸如企业网络的安全网络、诸如无线开放网络的非安全网络、或因特网。网络438提供此处描述的节点之间的通信。作为示例而非局限,网络438可以包括诸如有线网络或直接线连接等有线介质,以及诸如声学、RF、红外线和其它无线介质等无线介质。
所述安装可执行文件一旦被分发就可在任何计算设备中被激活,所述计算设备包括但不限于个人数字助理(PDA)440、膝上型计算机442和桌上型计算机444的示例设备。
可以采用计算设备、应用程序、数据源、数据分发和分析系统的许多其它配置来实现使用包括脚本逻辑的单个文件可执行文件的软件产品分发。此外,图4中所讨论的联网环境仅用于说明目的。各实施方式不限于示例应用程序、模块、或过程。使用具有安装脚本和程序文件的安装可执行文件的联网环境可由使用此处描述原理的许多其他方式来提供。
参考图5,示出了例如计算设备532的示例计算操作环境的框图。在基本配置中,计算设备532通常包括至少一个处理单元562和系统存储器564。计算设备532可包括协作执行程序的多个处理单元。取决于计算设备的确切配置和类型,系统存储器564可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。系统存储器564通常包括适于控制联网的个人计算机的运作的操作系统565,诸如来自华盛顿州雷德蒙市的微软公司的WINDOWS操作系统。系统存储器564还可包括一个或多个软件应用程序,例如程序模块566和封装应用程序552。
如前面详细所述,封装应用程序552管理安装脚本的创建以便控制软件产品和/或其更新的安装,并且组合所述安装脚本和适用的程序文件以便安装所述产品(或更新)。封装应用程序552和任何其他相关程序可以是分发应用程序的一个集成部分,或者远程操作、与所述分发应用程序和运行于计算设备532或其他设备上的其他应用程序通信。此外,封装应用程序552可执行于除操作系统565之外的一操作系统中。该基本配置在图5中由虚线568内的那些组件示出。
计算设备532可具有附加特征或功能。例如,计算设备532还可包括附加数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。在图5中通过可移动存储569和不可移动存储570示出了这样的附加存储。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器564、可移动存储569和不可移动存储570都是计算机存储介质的示例。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算设备532访问的任何其他介质。任何这样的计算机存储介质可以是设备532的一部分。计算设备532还可具有诸如键盘、鼠标、笔、话音输入设备、触摸输入设备等输入设备572。还可包括诸如显示器、扬声器、打印机等输出设备574。这些设备在本领域中公知并且无需在此处详细讨论。
计算设备532也可以包含允许该设备与其它计算设备510通信的通信连接576,诸如在分布式计算环境中通过网络,例如内联网或互联网。通信连接576是通信介质的一个示例。通信介质包括任何信息传递介质。例如,根据一实施例,通信介质可包括有线网络或直接线连接。根据另一实施例,通信介质可包括诸如声学、RF、红外线、以及其它无线介质等无线介质。根据又一实施例,通信介质可以在诸如载波或其它传输机制等已调制数据信号中包括计算机可读指令、数据结构、程序模块或其他数据。术语“已调制数据信号”指的是一个或多个特征以在信号中编码信息的方式被设定或更改的信号。上述的任意组合也应包含在计算机可读介质的范围内。计算机可读介质还可被称作计算机程序产品。
如前面详述,封装应用程序552创建的所述安装可执行文件可通过通信连接576分发至其他计算设备510,其中所述安装可执行文件可在操作系统555中执行为安装应用程序506。操作系统565和555不必相同。
所要求保护的主题还包括各方法。这些方法可以用任何数量的方式,包括本文中所描述的结构来实现。一种此类方式是通过本文中描述的类型的设备的机器操作。
另一可任选方式是结合一个或多个人类操作者执行该方法的各个操作中的某一些来执行该方法的一个或多个操作。这些人类操作者无需彼此同在一处,而是其每一个可以仅与执行程序的一部分的机器同在一处。
图6示出根据各实施例的资源文件清单和存储在如DVD 602的便携式存储介质上的外部资源文件的示例。DVD 602可存储安装可执行文件604,该可执行文件604包括脚本文件606、清单608和资源文件(如CAB 0文件610)。DVD 602还可存储外部资源文件,例如CAB 1文件612、CAB N-1文件614和CAB N文件616。所述安装可执行文件604通过利用所述外部资源文件612-616被用于安装或更新软件产品。特别的,一旦执行所述安装可执行文件604,脚本文件606可被配置为向清单608查询所述外部资源文件612-616,以便用在与软件产品的安装或更新相关的安装操作中。根据一实施例,清单608可包括所述安装可执行文件604中的标记语言命名空间部分(例如XML命名空间部分),其包括指向安装可执行文件604中内部资源文件(即CAB 0文件610)和一个或多个外部资源文件(即CAB 1文件612、CAB N-1文件614和CAB N文件616)的指针的列表。所属领域技术人员应当理解,清单608消除了以前与所述安装可执行文件604相关联的限制,在软件产品的安装或更新过程中,由于尺寸限制以前只能利用单个的所附的CAB文件。特别的,清单608使得安装可执行文件604能够访问在DVD 602上但不包括在安装可执行文件604自身内部的外部CAB文件。因此,由CAB文件以前带来的以及如FAT32文件系统的基于计算机的文件系统带来的尺寸限制已经消除了,仅存的限制是包括所述安装可执行文件604和任何其他能存储的资源文件的介质(如DVD 602)的最大大小。还应当理解,具有安装可执行文件所使用的附加资源文件的能力允许将软件产品或更新划分为多个部分。因此,生产所述软件产品或更新的计算机系统可以每次处理更小的数据块。还应当理解,具有安装可执行文件所使用的附加资源文件(即CAB文件)的能力允许计算机可读存储介质(例如DVD)的更方便且可伸缩的布局。
图7示出了创建和使用脚本安装可执行文件的过程的逻辑流程图。过程700的各部分可在封装应用程序、安装可执行文件等中实现。
过程700始于操作702,此处定义安装类型。无论是新产品安装还是更新/补丁安装,安装类型可确定如何生成安装脚本以及安装操作的顺序。处理从操作702前进至操作704。
操作704,生成定义安装任务的动作及其顺序的安装脚本。基于模式的脚本可使用如XML的结构化语言来生成,并且是可自定义和可扩展的。处理从操作704前进至操作706。
操作706,收集适用的程序文件。对于每种安装类型,包括数据文件、DLL等在内的不同的文件集可能是必要的。处理从操作706前进至操作708。
操作708,收集到的程序文件和所述安装脚本被组合为一个单个文件安装可执行文件,所述单个文件安装可执行文件能通过网络下载或在便携式存储介质上分发。操作708之后,所述安装可执行文件被分发至用户。该过程的第二部分始于用户执行该安装文件时。过程700中的操作间的空白由虚线代表。
操作710,在用户计算机上执行该安装文件。该执行激活所述安装脚本,该安装脚本开始按照预定义的顺序执行任务。正如有关图6的上述讨论,所述任务可包括查询所述安装文件(即可执行文件)中的清单。所述清单可包括所述安装文件外部的资源文件(即CAB文件)列表。所述清单可包括在所述安装文件内的标记语言命名空间部分中。
操作712,检测预定义元素,例如系统能力(存储器、硬盘空间等)、现有软件组件等。基于检测结果,安装脚本可提示用户提供输入,例如选择、产品密钥、用户信息等。处理从操作712前进至操作714。
操作714,接收响应于脚本提示对话的用户输入。用户提供输入所用的对话和UI可由所述脚本基于安装类型、系统环境等进行自定义。处理从操作714前进至判定操作716。
判定操作716,确定部分或全部用户输入是否有效。如果用户输入是有效的,处理从判定操作716前进至操作718。
操作718,执行安装任务,所述安装任务包括但不限于拷贝文件、激活组件、注册组件等。例如,正如有关图6的上述讨论,安装文件(即可执行文件)执行的安装任务可特别地包括利用外部资源文件(即CAB文件)来安装包括软件产品或更新的程序文件。正如有关图6的上述讨论,任务可包括查询安装文件(即,可执行文件)内的清单。在操作718之后,处理可移至用于采取其他动作的调用过程,然后结束。
以上说明书、示例和数据提供了对各实施方式组成的制造和使用的全面描述。尽管用专门描述结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求书中限定的主题并不一定局限于上述特定的特征或动作。相反,上述具体特征和动作是作为实现权利要求和各实施方式的示例形式而公开的。
Claims (10)
1.一种至少部分地在计算设备(110)中执行的使用单个可执行文件(206)来安装包括程序文件(204)的软件产品的方法,包括:
所述计算设备(110)生成(704)用于管理安装操作的安装脚本(202);
如果所述安装操作与所述程序文件(204)相关联,则所述计算设备(110)将(708)所述安装脚本(202)和与所述安装操作相关联的所述程序文件(204)相组合;
所述计算设备(110)生成(708)包括组合后的安装脚本(202)和程序文件(204)的单个可执行文件(206);
所述计算设备(110)分发(708)所述单个可执行文件(206);以及
所述计算设备(110)执行(710)所述单个可执行文件(206),其中执行所述单个可执行文件(206)包括查询所述单个可执行文件(206)内部的清单(608),所述清单(608)包括所述单个可执行文件(206)外部的多个资源文件(612,614,616)的列表,所述单个可执行文件(206)利用所述多个外部资源文件(612,614,616)来安装所述程序文件(204)。
2.如权利要求1所述的方法,其特征在于,查询所述单个可执行文件内部的清单包括查询所述单个可执行文件中的标记语言命名空间部分。
3.如权利要求1所述的方法,其特征在于,生成管理安装操作的安装脚本包括基于安装类型生成安装脚本。
4.如权利要求1所述的方法,其特征在于,执行所述单个可执行文件还包括:
检测与用户计算设备相关联的系统参数;
提示对话以接收脚本参数的用户输入;
接收所述用户输入;以及
基于检测的系统参数和接收的用户输入执行与所述安装操作相关联的预定义动作。
5.如权利要求4所述的方法,其特征在于,执行所述单个可执行文件还包括:
响应于未正确执行的动作确定错误;
提示对话为用户提供反馈;以及
向预定义的监控应用程序报告所述错误。
6.如权利要求4所述的方法,其特征在于,执行所述单个可执行文件还包括:
如果所述安装是用于更新,则检测现有软件产品组件;以及
确定所述现有组件是否适合所述更新。
7.如权利要求4所述的方法,其特征在于,执行所述单个可执行文件还包括执行包含下面集合中至少一个的安装后的动作:注册所述软件产品,删除临时创建的文件以及激活所述软件产品的至少一个组件。
8.如权利要求1所述的方法,其特征在于,分发所述单个可执行文件包括在计算机可读存储介质上提供所述文件。
9.一种具有计算机可执行指令的计算机可读存储介质(510,564),所述指令被计算机(532)执行时将使该计算机(532)执行一种使用单个可执行文件(206)来安装包括程序文件(204)的软件产品的方法,所述方法包括:
生成(704)用于管理安装操作的安装脚本(202);
如果所述安装操作与所述程序文件(204)相关联,则将(708)所述安装脚本(202)和与所述安装操作相关联的所述程序文件相组合(204);
生成(708)包括组合后的安装脚本(202)和程序文件(204)的单个可执行文件(206);
分发(708)所述单个可执行文件(206);以及
执行(710)所述单个可执行文件(206),其中执行所述单个可执行文件(206)包括查询所述单个可执行文件(206)内部的清单(608),所述清单(608)包括所述单个可执行文件(206)外部的多个资源文件(612,614,616)的列表,所述单个可执行文件(206)利用多个外部资源文件(612,614,616)来安装所述程序文件(204)。
10.一种用于使用单个可执行文件来安装包括程序文件的软件产品的系统(532),包括:
用于存储可执行程序代码(552,556)的存储器(564);
耦合至所述存储器(564)的处理单元(562),所述处理单元(562)响应包含在所述程序代码(552,556)中的计算机可执行指令并用于:
生成(704)用于管理安装操作的安装脚本(202);
如果所述安装操作与所述程序文件(204)相关联,则将(708)所述安装脚本(202)和与所述安装操作相关联的所述程序文件(204)相组合;
生成(708)包括组合后的安装脚本(202)和程序文件(204)的单个可执行文件(206);
分发(708)所述单个可执行文件(206);以及
执行(710)所述单个可执行文件(206),其中执行所述单个可执行文件(206)包括查询所述单个可执行文件(206)内部的清单(608),所述清单(608)包括所述单个可执行文件(206)外部的多个箱(CAB)资源文件(612,614,616)的列表,所述单个可执行文件(206)利用多个CAB资源文件(612,614,616)来安装所述程序文件(204),其中所述程序文件(204)包括软件产品。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/794,860 US20100242034A1 (en) | 2006-11-01 | 2010-06-07 | Distributing software products as an executable containing script logic with external resources |
US12/794,860 | 2010-06-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102270129A true CN102270129A (zh) | 2011-12-07 |
Family
ID=45052440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101599416A Pending CN102270129A (zh) | 2010-06-07 | 2011-06-03 | 将软件产品分发为包括脚本逻辑和外部资源的可执行文件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102270129A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995710A (zh) * | 2013-02-18 | 2014-08-20 | 佳能株式会社 | 图像形成设备及软件安装方法 |
CN104077118A (zh) * | 2013-03-27 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 一种应用程序的资源的定制方法及装置 |
CN108762821A (zh) * | 2017-04-18 | 2018-11-06 | 海马云(天津)信息技术有限公司 | 电子设备运行应用的装置及方法、电子设备 |
CN110168496A (zh) * | 2017-01-11 | 2019-08-23 | 微软技术许可有限责任公司 | 用于应用呈现的方法和系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1199895A (zh) * | 1997-05-19 | 1998-11-25 | 三星电子株式会社 | 用于制造主硬盘的系统及其方法 |
US5978579A (en) * | 1997-08-12 | 1999-11-02 | International Business Machines Corporation | Architecture for customizable component system |
US6279151B1 (en) * | 1998-01-20 | 2001-08-21 | International Business Machines Corporation | Method and apparatus for remote source code inclusion |
US20020107945A1 (en) * | 2000-12-12 | 2002-08-08 | Ibm Corporation | Mechanism to dynamically update a windows system with user specific application enablement support from a heterogeneous server environment |
US20030018777A1 (en) * | 2001-07-19 | 2003-01-23 | Gregory Miller | Method for transmitting a transferable information packet |
US20050055692A1 (en) * | 2003-09-05 | 2005-03-10 | International Business Machines Corporation | Method of building dynamic installation packages using a declarative authoring tool |
US20060031833A1 (en) * | 1999-09-30 | 2006-02-09 | International Business Machines Corporation | Methods and apparatus for a web application processing system |
US20060059481A1 (en) * | 2004-09-16 | 2006-03-16 | Rodney Smith | Presenting, delivering and installing electronic downloads with an installed list |
US20060101457A1 (en) * | 2004-10-29 | 2006-05-11 | Zweifel Evan R | Method and apparatus for determining which program patches to recommend for installation |
US20060206890A1 (en) * | 2005-03-10 | 2006-09-14 | Michael Shenfield | System and method for building a deployable component based application |
US20080127175A1 (en) * | 2006-11-01 | 2008-05-29 | Microsoft Corporation | Packaging software products as single-file executables containing scripting logic |
CN101196815A (zh) * | 2007-12-27 | 2008-06-11 | 腾讯科技(深圳)有限公司 | 安装包生成装置及方法、以及安装进度传递方法 |
-
2011
- 2011-06-03 CN CN2011101599416A patent/CN102270129A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1199895A (zh) * | 1997-05-19 | 1998-11-25 | 三星电子株式会社 | 用于制造主硬盘的系统及其方法 |
US5978579A (en) * | 1997-08-12 | 1999-11-02 | International Business Machines Corporation | Architecture for customizable component system |
US6279151B1 (en) * | 1998-01-20 | 2001-08-21 | International Business Machines Corporation | Method and apparatus for remote source code inclusion |
US20060031833A1 (en) * | 1999-09-30 | 2006-02-09 | International Business Machines Corporation | Methods and apparatus for a web application processing system |
US20020107945A1 (en) * | 2000-12-12 | 2002-08-08 | Ibm Corporation | Mechanism to dynamically update a windows system with user specific application enablement support from a heterogeneous server environment |
US20030018777A1 (en) * | 2001-07-19 | 2003-01-23 | Gregory Miller | Method for transmitting a transferable information packet |
US20050055692A1 (en) * | 2003-09-05 | 2005-03-10 | International Business Machines Corporation | Method of building dynamic installation packages using a declarative authoring tool |
US20060059481A1 (en) * | 2004-09-16 | 2006-03-16 | Rodney Smith | Presenting, delivering and installing electronic downloads with an installed list |
US20060101457A1 (en) * | 2004-10-29 | 2006-05-11 | Zweifel Evan R | Method and apparatus for determining which program patches to recommend for installation |
US20060206890A1 (en) * | 2005-03-10 | 2006-09-14 | Michael Shenfield | System and method for building a deployable component based application |
US20080127175A1 (en) * | 2006-11-01 | 2008-05-29 | Microsoft Corporation | Packaging software products as single-file executables containing scripting logic |
CN101196815A (zh) * | 2007-12-27 | 2008-06-11 | 腾讯科技(深圳)有限公司 | 安装包生成装置及方法、以及安装进度传递方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995710A (zh) * | 2013-02-18 | 2014-08-20 | 佳能株式会社 | 图像形成设备及软件安装方法 |
CN103995710B (zh) * | 2013-02-18 | 2017-08-15 | 佳能株式会社 | 图像形成设备及软件安装方法 |
US10536602B2 (en) | 2013-02-18 | 2020-01-14 | Canon Kabushiki Kaisha | Device, software installation method, and storage medium |
CN104077118A (zh) * | 2013-03-27 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 一种应用程序的资源的定制方法及装置 |
CN110168496A (zh) * | 2017-01-11 | 2019-08-23 | 微软技术许可有限责任公司 | 用于应用呈现的方法和系统 |
CN110168496B (zh) * | 2017-01-11 | 2023-09-15 | 微软技术许可有限责任公司 | 用于应用呈现的方法和系统 |
CN108762821A (zh) * | 2017-04-18 | 2018-11-06 | 海马云(天津)信息技术有限公司 | 电子设备运行应用的装置及方法、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080127175A1 (en) | Packaging software products as single-file executables containing scripting logic | |
US20100242034A1 (en) | Distributing software products as an executable containing script logic with external resources | |
US9954819B2 (en) | System and method for compliance based automation | |
US7512932B2 (en) | Language and object model for describing MIDlets | |
US8850422B2 (en) | Method for managing an application and application platform | |
US9063725B2 (en) | Portable management | |
US8171465B2 (en) | Applicable patch selection device and applicable patch selection method | |
US10656971B2 (en) | Agile framework for vertical application development and delivery | |
US20130219307A1 (en) | System and method for runtime user interface management | |
US20030181196A1 (en) | Extensible framework for code generation from XML tags | |
US20150212812A1 (en) | Declarative and pluggable business logic for systems management | |
US8996447B2 (en) | Decision service manager | |
US20150220308A1 (en) | Model-based development | |
CN102045390A (zh) | 计算机专用软件更新的自动配置 | |
CN101816006A (zh) | 用于web服务的安全性策略验证 | |
US20150220553A1 (en) | Expandable ad hoc domain specific query for system management | |
GB2423163A (en) | Integrating software into an existing IT infrastructure | |
WO2006099046A2 (en) | Automated interface-specification generation for enterprise architectures | |
US8839223B2 (en) | Validation of current states of provisioned software products in a cloud environment | |
US20130212574A1 (en) | Sub-Device Discovery and Management | |
US9459859B2 (en) | Template derivation for configuration object management | |
US9256400B2 (en) | Decision service manager | |
CN102360350B (zh) | 将样式破坏从可扩展标记语言文档中移除 | |
US9075840B1 (en) | Method and computer program product for allowing a software application to interact with a product | |
CN105138313A (zh) | 客户机应用程序和网页集成 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150730 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150730 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111207 |