天天看点

网站安装打包 软件环境检测与安装[二] 下

这一节主要说安装!

1。操作系统

这个应该不用了,没系统也没法运行了!

2。iis安装

这个是重点,最后面介绍!

3。framework安装

这个也不用了,工具安装时会先检测,如果没安装这工具也打不开了!

4。rar安装

这个可以通过调用rar的安装文件启动安装。

代码简单的就一句话:process.start(“rar的安装软件路径”);

以下重点介绍iis的自动安装

iis的自动安装也很简单,先说下原理,再说下步骤:

原理:通过调用sysocmgr.exe系统自带的工具安装,主要参数为:"/i:sysoc.inf /u:\"这里是iis.txt文件路径\""

这里的参数没有iis安装文件的路径,那路径是在哪里指定的?答:路径就在注册表里指定了

注册表路径为:machine\software\microsoft\windows\currentversion\setup

这下面有两个键:sourcepath和servicepacksourcepath即为路径

所以,运行sysocmgr.exe之前,

一.是要先配置好iis.txt文件,

二.是要先改注册表路径。

三.是运行sysocmgr.exe

四.是把注册表改回去

主要步骤如下:

一:新建一个txt文件,把iis要装的组件,按如下格式编写:

[components]

iis_common = on

iis_www = on

iis_asp = on

iis_inetmgr = on

aspnet= on

----------------保存成iis.txt即可。里面的组件其它组件名称,可以通过查看iis6.0的帮助文档找到!

二、三、四步,直接给出代码出下:

网站安装打包 软件环境检测与安装[二] 下
网站安装打包 软件环境检测与安装[二] 下

          /// <summary>

          /// 安装iis

          /// </summary>

          /// <param name="installpath">iis386文件夹路径</param>

          /// <param name="iistxt">即存放安装组件的文本路径</param>

          /// <param name="errmsg">返回的错误信息</param>

          /// <returns></returns>

          public static bool install(string installpath, string iistxt,out string errmsg)

          {

              errmsg = "";

              registrykey key = registry.localmachine.opensubkey(@"software\microsoft\windows\currentversion\setup",true);

              if (key == null) { return false; }

              string sourcepath = convert.tostring(key.getvalue("sourcepath"));

              string servicepacksourcepath = convert.tostring(key.getvalue("servicepacksourcepath"));

              try

              {

                  key.setvalue("servicepacksourcepath", installpath);

                  key.setvalue("sourcepath", installpath);

                  process rarpro = new process();

                  rarpro.startinfo.filename = "sysocmgr.exe";

                  rarpro.startinfo.arguments = string.format("/i:sysoc.inf /u:\"{0}\"", iistxt);

                  rarpro.startinfo.useshellexecute = false;

                  rarpro.startinfo.createnowindow = false;

                  rarpro.startinfo.windowstyle = processwindowstyle.hidden;

                  rarpro.start();//开始  

                  rarpro.waitforexit();//等待退出

                  rarpro.dispose();

                  return true;

              }

              catch (exception err) { errmsg = err.message; }

              finally

                  key.setvalue("servicepacksourcepath", servicepacksourcepath);

                  key.setvalue("sourcepath", sourcepath);

              return false;

          }

网站安装打包 软件环境检测与安装[二] 下

 打完,收工!

继续阅读