InStallShield 命令行模式編譯

最近在持續的弄IS12打包的事宜,有諸多事情需要處理,一些技術點需要掌握,關於IS的命令行模式編譯安裝文件,在網上搜了一些資料貼在這裏,慢慢學吧,徐圖之~~

命令行模式生成Installshield安裝文件時要注意的問題

    最近在維護我們項目的Intallshield工程文件。爲了方便應用程序的批處理生成,我們都是在命令行模式下使用ISBuild.exe來產生項目的安裝文件。但是最近修正了我們項目的Installshield工程腳本里的一個Bug, 修正完了以後運行批處理文件生成安裝程序,然後運行安裝程序,安裝完成後發現修改後的代碼的結果並沒有被反映出來。原來以爲是有文件只讀,導致某些生成文件不能被替換掉,於是去掉只讀屬性後重Build,發現改動還是沒有被Build進去。無奈,只有仔細研讀Installshield幫助,讀了幫助後才發現,原來在Installshield裏面,Compile和Build這兩個步驟是完全分開獨立的。我們知道,一般在Visual Studio裏面,Compile是Build的一個子操作。但是在Installshield裏面,Compile是用來編譯腳本源代碼,而Build是用來生成安裝包,它並不會使用Compile來編譯一道腳本源代碼,由於我做的改動簡單,改動完後並沒有在IDE環境中Compile一次腳本,而在命令行的批處理文件中我們又沒有使用Installshield的命令行腳本編譯工具,因此腳本的變化總也反映不到安裝包裏面。
    於是,在批處理腳本中調用ISBuild.exe前加入如下命令:

set COMPILER="C: Program Files InstallShield Professional 7 Program BIN Compile.exe"
set RULFILES=<The script source code file full name>
set INCLUDEPATHS= -I"C: Program Files InstallShield Professional 7 Script Ifx Include" -I"C: Program Files InstallShield Professional 7 Script ISRT Include" -I"L: CPS Dev TetraDev SetupProjects TetraCPPatchPackage Script Files" -I"C: Program Files InstallShield Professional 7 Include" -I"C: Program Files Microsoft Visual Studio VC98 atl include" -I"C: Program Files Microsoft Visual Studio VC98 mfc include" -I"C: Program Files Microsoft Visual Studio VC98 include"
set LINKPATHS=-LibPath"C: Program Files InstallShield Professional 7 Script Ifx Lib" -LibPath"C: Program Files InstallShield Professional 7 Script ISRT Lib"
set LIBRARIES=isrt.obl ifx.obl
set DEFINITIONS=-dPATCH_PACKAGE_MEDIA
set SWITCHES=-w50 -e50 -v3 -g
%COMPILER% %RULFILES% %INCLUDEPATHS% %LINKPATHS% %LIBRARIES% %DEFINITIONS% %SWITCHES%

然後存盤運行此批處理文件,完成後測試,發現腳本的變化終於可以正確地反映到安裝包中。

http://zbnetium.spaces.live.com/Blog/cns!BDF6657CF8D6682E!181.entry

 

 

轉自:http://bbs.scmroad.com/viewthread.php?tid=1655 利用命令行或者ant(nant)調用installshield Cruisecontrol 或者Cruisecontrol.NET中都可以調用installshield,這樣就可以在做build的同時,進行打包,然後就可以交給Tester去測試了. 調用installshield,我想到的有三種方法, 1. 是把調用installshield的命令寫到一個bat或者cmd文件中,利用Cruisecontrol(Cruisecontrol.NET)或者ant(Nant)去調用這個文件 2. 是把調用installshield的命令直接寫到ant(Nant)的build.xml文件中去 3. 事實上也可以把這部分寫到Cruisecontrol(CruiseControl.NET)的配置文件中去,但是我們不建議這樣.尤其是項目比較多的情況.但是項目如果比較少的話,比如就一個項目,那麼都寫到一個文件中的確方便不少.好處壞處只能大家自己權衡一下了.然後針對自己的項目進行優化 在windows下如果寫成cmd或者bat,就寫成下面的樣子引用: pushd Installers/ABCD_main %INSTALLSHIELD% -p ABCD_main.ism -o ../Release IF %ERRORLEVEL% NEQ 0 goto error popd 如果寫到ant的build.xml腳本中,利用build腳本調用installsheild,就可以寫成下面的樣子: 引用: Build-ABCD-Main-Installer remove the read-only attribute:attrib -r /s * 在windows的命令行下利用installshield打包,大概就可以仿照上面的代碼. 前提是你的installshield工程文件,在每次build的時候改動比較少.如果每次作一次build,installshield的工程文件都需要改動很多,那麼就直接在installshield的GUI界面下build就可以了. 這種情況如果要變成自動build就很困難.不過,我們也可以找找installshield所能接受什麼參數,如果你在GUI界面下需要更改的參數,都可以在命令行下給出,那麼則可以省去很多事情.但是這方面我看的還比較少,如果大家誰比較精通,可以來一起分享一下.

 

1,請問大家如何在installshield的命令行中自動打包?2,每日構建好需要的安裝包源文件後,如何通過installshield的命令行來製作安裝包,而不用通過installshield軟件來製作?注:製作安裝包的腳本不變謝謝了!
答:暈,還是自己搞定了原來INSTALLSHIELD自身可以導出一個Build.bat文件可以每次自動運行生成如果是換了文件,目錄等也可自己寫個批處理,就解決了
發佈了27 篇原創文章 · 獲贊 9 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章