怎么制作一個網(wǎng)站安裝的軟件? 以前一開始的時候,是通過制作web安裝程序,然后框的一下把網(wǎng)站安裝完了。但是由于網(wǎng)站涉及到虛擬目錄,創(chuàng)建網(wǎng)站等操作,直接制作web安裝程序,如果中間有大量的配置是是靈活改變的,就變的相當?shù)臒╂i了。于是,換了一種方法: 通過制作一個網(wǎng)站安裝的工具,然后通過制作應用程序安裝程序: --------就是制作一個網(wǎng)站安裝工具,然后通過安裝工具,再進行網(wǎng)站安裝?。?! 一.工具的組成:五個部分介紹: 1.軟件環(huán)境檢測 2.webconfig修改 3.新建網(wǎng)站(文件解壓->創(chuàng)建網(wǎng)站->瀏覽網(wǎng)站) 4.IIS附加功能(查看站點、開啟站點,停止站點、重啟IIS、停止IIS、啟動IIS) 5.工具App.config配置修改
二.工具的打包,制作應用程序安裝程序。 1.打包環(huán)境軟件(可選) 2.打包IIS軟件(可選) 3.壓縮站點 4.創(chuàng)建程序菜單和桌面菜單 這一節(jié)主要說安裝! 1。操作系統(tǒng) 這個應該不用了,沒系統(tǒng)也沒法運行了! 2。IIS安裝 這個是重點,最后面介紹! 3。framework安裝 這個也不用了,工具安裝時會先檢測,如果沒安裝這工具也打不開了! 4。RAR安裝 這個可以通過調(diào)用RAR的安裝文件啟動安裝。 代碼簡單的就一句話:Process.Start(“RAR的安裝軟件路徑”);
以下重點介紹IIS的自動安裝
IIS的自動安裝也很簡單,先說下原理,再說下步驟: 原理:通過調(diào)用Sysocmgr.exe系統(tǒng)自帶的工具安裝,主要參數(shù)為:"/i:sysoc.inf /u:\"這里是iis.txt文件路徑\"" 這里的參數(shù)沒有iis安裝文件的路徑,那路徑是在哪里指定的?答:路徑就在注冊表里指定了 注冊表路徑為:Machine\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup 這下面有兩個鍵:SourcePath和ServicePackSourcePath即為路徑 所以,運行Sysocmgr.exe之前, 一.是要先配置好iis.txt文件, 二.是要先改注冊表路徑。 三.是運行Sysocmgr.exe 四.是把注冊表改回去
主要步驟如下: 一:新建一個txt文件,把IIS要裝的組件,按如下格式編寫: [Components] ----------------保存成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; } |
|
來自: 悟靜 > 《access asp分析》