最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

把微软提供的EXE MSI做成组件

来源:动视网 责编:小OO 时间:2025-09-26 18:08:06
文档

把微软提供的EXE MSI做成组件

把微软提供的EXEMSI做成组件去年的时候论坛robig有篇大作“MicrosoftWindowsMediaEncoder9”,我尝试着做了一下,比较复杂,设计到好多注册表,万一有一个搞错了程序就不能运行,看了下系统里有个.NETFramework3.0Setup。这个是在系统进行FBA的时候把.net进行安装,我们是不是可以再FBA的时候把需要的组建安装上去呢?这样对自定义shell的系统有很大好处,自定义shell的系统部方便在安装其他东西,同时又有可能安装许多运行环境,比如jre、.ne
推荐度:
导读把微软提供的EXEMSI做成组件去年的时候论坛robig有篇大作“MicrosoftWindowsMediaEncoder9”,我尝试着做了一下,比较复杂,设计到好多注册表,万一有一个搞错了程序就不能运行,看了下系统里有个.NETFramework3.0Setup。这个是在系统进行FBA的时候把.net进行安装,我们是不是可以再FBA的时候把需要的组建安装上去呢?这样对自定义shell的系统有很大好处,自定义shell的系统部方便在安装其他东西,同时又有可能安装许多运行环境,比如jre、.ne
把微软提供的EXE MSI做成组件

 去年的时候论坛robig 有篇大作“Microsoft Windows Media Encoder 9”,我尝试着做了一下,比较复杂,设计到好多注册表,万一有一个搞错了程序就不能运行,看了下系统里有个.NET Framework 3.0 Setup。这个是在系统进行FBA的时候把.net进行安装,我们是不是可以再FBA的时候把需要的组建安装上去呢?这样对自定义shell的系统有很大好处,自定义shell的系统部方便在安装其他东西,同时又有可能安装许多运行环境,比如jre 、.net(这个提供到3.0了 3.5的可以这么做)还有robig提高这个media encoder等等。我们需要在shell程序运行起来的之前就把这些环境安装好,尝试了下是可以实现的。

  举个例子 还以Media Encoder 9为例,首先在微软的网站上把它down下来,然后在CMD里运行命令WMEncoder_cn.exe  /? 结果给出说明如下图

说明可以实现静默安装,即WMEncoder_cn.exe  /q 。测试下,成功的自动安装,

我们开始下一步的组件的制作,添加文件并指定好路径 如图

这里要说明下,在destination选着目标路径的时候要注意,后面的文件夹命名千万不要有空格,否则在系统执行的时候。有可能找不到这个文件夹,导致安装失败。

  进行下一步

   添加组件依赖关系,由于使用时windows install service这个服务我们这里把它填上,当然不可避免还要使用CMD这个组件两个都填上

 

然后在这里就是很重要的一步了。在resources里把FBA的命令填上如下

 

这里的意思就是在FBA的时候运用命令行模式,把该安装的东西安装,该删除的东西删除。。。等等相当于windows里的CMD命令行。功能很强大,能干的事情很多。如果你很熟悉CMD命令,那可以做很多事情,闲话少叙,转入正题

 修改resources name的名字

下面有一些参数,需要填写的Arguments、filepath、phase这三个

Arguments 这里要添的就是参数,参数就是我们在自己系统上测试的那个参数 这里我们添 /q  意思就是静默安装

File path 当然是指文件的路径了,这里可以用带%的相对路径也可以是绝对路径,由于是在文件建立后才运行所以都可以,我这里就填直接路径了。路径就是上面添加文件时候的路径

Phase 这个有个说法,我这里添11000

参考文档里是有参数我摘取出来

从这两个图片上可以分析出来,xpe在FBA的时候分成0-20000段,各给阶段都是那些值。在这里可以看到在8500的时候进行第二次BFA,在8501-12000之间进行你自己定义的这些东西,因此我在这里写上11000。

  安装填写完了,考虑到XPE一般来说都是要比较小的尺寸,安装完的东西,我们就不需要再给它做备份了,把它干掉吧,这里要用到删除文件夹的命令行。

  再新建一个FBA genius command 来删除装完之后的文件夹

 过程类似不在赘述 看下图

稍微解释下

 Argument,有个/c 这个意思是那进行传导后面的命令,这个很重要,如果不加是无法实现后面的命令的,至于rmdir /S /Q %24%\\Encoder 就不在多叙,这里是删除上面提到的文件夹。不清楚的可以百度或者Google下

 File 这里是调用的CMD,所以我们把它指定为文件路径。

 Phase 这里写了110020,这个就是随便写的,只要你能完成上面的安装过程在执行删除,命令即可,所以要大于11000,但是要小于12000.

不要忘记在responsitory里把相应的资源位置填上,同时在组件设计里把资源选上否则在build的时候不能找到文件,切莫忘记。

最后保存退出,导入数据库,在TD中添加组件测试,成功。

小技巧

  上面说了可以直接静默安装的,在微软网站上下载的好多程序都不能直接静默安装,里面有一些许可说明,安装方式等等。我们这里有个小技巧,微软的东西绝大多数都是需要windows installer service服务的,他们把东西做成MSI文件,然后把msi和相关的文件打成一个EXE包,因此这个包是可以解开的。我们以.netfreamword 1.1 为例,输入dotnetfx /? 

 发现有个解包命令 /C 出现解压到指定位置,完成后如图

这里面有个msi包,有了这个就可以实现静默安装了

在做组件的时候把上面的文件全部添加进去。

 在FBA generic command中调用cmd命令行完全可以实现,如图

把组件做成功后 导入DATABSE TD测试是成功的.

 这样做成的组件在第二次FBA的时候就能自动执行安装,删除多余的文件,很自动化,而且比较简单,能绕开复杂的注册表,对于自定义shell的各位同仁来说,无疑是个福音。有不足之处请给位多多指教,

我的联系方式是MSN: wyanhu@hotmail.com 

 

 

 

文档

把微软提供的EXE MSI做成组件

把微软提供的EXEMSI做成组件去年的时候论坛robig有篇大作“MicrosoftWindowsMediaEncoder9”,我尝试着做了一下,比较复杂,设计到好多注册表,万一有一个搞错了程序就不能运行,看了下系统里有个.NETFramework3.0Setup。这个是在系统进行FBA的时候把.net进行安装,我们是不是可以再FBA的时候把需要的组建安装上去呢?这样对自定义shell的系统有很大好处,自定义shell的系统部方便在安装其他东西,同时又有可能安装许多运行环境,比如jre、.ne
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top