使用InstallShield下部署ASP.NET网站和MySQL,目标机为Win7——(二)使用InstallShield部署非安装版MySQL...
接上一篇文章http://www.cnblogs.com/wigis/archive/2012/12/01/2797505.html
在使用bat批處理可以自動部署MySQL服務端后,我們使用InstallShield來達到相同的目的。原理還是一樣的,在用InstallShield安裝到客戶機的指定位置后,運行bat文件。
1. 準備以下文件。在上一步應該已經都完成了。
1)??????? 首先準備好非安裝版MySQL(可以刪除其內mysql-test子文件夾,此文件夾用于回歸測試MySQL,無用而且較大);
2)??????? 準備好my.ini
若客戶端可能存在MySQL服務器軟件,要修改port為其他端口。只要保證每個MySQL服務器使用不同端口,就可以在一個機器上運行多個MySQL實例,很簡單。
?
3)??????? 準備好導入數據的SQL文件
4)??????? 準備好bat文件。
解釋:
rem 設置當前路徑
set curDir=%cd%
rem是相當于//注釋
保存當前路徑其實似乎沒必要。
?
rem 若存在服務,則刪除
net stop MySQLCiBASE
bin\mysqld remove MySQLCiBASE
不管客戶機有沒有,首先停掉MySQL服務,并卸載。客戶機沒有則報錯,但不影響繼續執行。
?
echo 安裝MySQL服務。。。
bin\mysqld --install MySQLCiBASE --defaults-file="%curDir%\my.ini"
安裝MySQL服務,--defaults-file參數要帶上雙引號,否則路徑中有空格(比如C:\Program Files)就會報錯,dos命令遇到空格就認為命令結束。導致路徑錯誤。
echo 啟動MySQL服務。。。
net start MySQLCiBASE
echo MySQL安裝完成。。。
?
cd %curDir%
echo 初始化MySQL用戶。。。
bin\mysql -uroot <init.sql
我們加入了init.sql,此SQL文件為了導入用戶。你可以在其中修改MySQL的默認帳戶以及權限,使MySQL更安全。
?
echo MySQL開始導入數據。。。
bin\mysql -uroot<cibase.sql
導入自己的Sql數據
?
pause
為了測試我們后面加入pause。實際運行不需要,否則還要用戶點擊下安裝才能繼續。
?
2. InstallShield部署軟件有些思想。它把需要安裝的軟件分為若干Feature,每個Feature是軟件中相對獨立的功能,可由用戶選擇安裝或不安裝。對于我們只有一個MySQL的安裝,所以只有一個Feature。那每個Feature下肯定應該包含很多文件及文件夾,而InstallShield是Component的概念。一個Component可包含多個文件,并指定獨立的安裝位置,當然一般是所屬Feature下。InstallShield有一些規則來把文件或文件夾分割為不同的Component,比如每個文件夾至少分割成一個Component;遇到exe,dll,hlp等文件也要分割一個Component。我們不用管它,我們使用向導來建立Feature下的Component,IntallShield會自動為我們分割好。
我們部署MySQL其實只用到很簡單的東西。我們新建一個Feature,指定安裝路徑,使用向導導入文件。然后,比較高級的技術,就是在安裝完成后要運行腳本Intall.bat文件。
1)??????? 首先建立InstallScript MSI Project。為什么建立此類型,據說此類型最好用。
?
2)??????? 當然在Project Assistant選項卡中填寫一些基本信息,公司名似乎必填,或直接在Intallation DesigneràInstallation Information內填寫
3)??????? Intallation DesigneràInstallation InformationàGeneral Information的安裝目錄要自己填寫清楚。方便查看檢驗。
4)??????? 在Organization的Setup Design內設置Feature,有個DefaulatFeature我們可以刪除它,也可以修改它。Organization還有Features,Components視圖是他們各自的列表,讀者可自行查看。下圖中,我們使用向導為mysql導入文件。若不用向導,我們需要手工建立Component,并對應其mysql的父子目錄關系,當文件很多時幾乎不可行,多虧向導。
5)??????? 選擇第一個Best Practices
6)??????? 選擇安裝目錄(其實Feature的目錄默認為其包含的Components的目錄)
7)??????? 選擇Add Folder…。添加mysql非安裝版的文件夾
8)??????? 比較慢,它自動為mysql的文件分為很多components。
9)??????? 重要的一步,要添加運行腳本。在Behavior and LogicàInstallScript中。
10)??????? 在Setup.rul中添加,選擇上面2個下拉框,它會自動出現代碼模板,我們只需在begin和end間,敲入適當的代碼即可。
LanchAppAndWait(INSTALLDIR6”Instal.bat”,””,”WAIT”);函數的意思,可在InstallShield幫助文檔中查詢。
11)??????? 點擊Run。就OK了。錯誤的地方自己測試。
?
12)??????? 卸載腳本
?
- 其實安裝MySQL服務最好不要用MySQL名稱,這個名稱是MySQL的默認名稱,假如客戶端安裝了MySQL服務的話,一般就是此名稱,會沖突。假如需要在客戶機部署多個MySQL實例,我們根據自己項目需求,改變Install.bat和UnInstall.bat的MySQL Windows服務名稱和my.ini[mysqld]組下的port即可。
- 關于IntallShield的知識,多讀幫助文檔。很多知識網上說的五花八門。還是幫助文檔靠譜。我使用的是InstallShield2010 Premier Edition 英文版。
- 我也是剛剛學習InstallShield.
?
使用InstallShield下部署ASP.NET網站和MySQL,目標機為Win7——(一)使用bat批處理部署非安裝版MySQL
使用InstallShield下部署ASP.NET網站和MySQL,目標機為Win7——(二)使用InstallShield部署非安裝版MySQL
使用InstallShield下部署ASP.NET網站和MySQL,目標機為Win7——(三)整體部署
?
?
2012-12-01
?
?
轉載于:https://www.cnblogs.com/wigis/archive/2012/12/01/2797517.html
總結
以上是生活随笔為你收集整理的使用InstallShield下部署ASP.NET网站和MySQL,目标机为Win7——(二)使用InstallShield部署非安装版MySQL...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转:ArcGIS提取面状道路中心线(转载
- 下一篇: 【项目总结】达能益力--官网