这一节主要说安装!
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;
}
打完,收工!