installshield 命令行自動編譯

以下摘自:http://bbs.scmroad.com/viewthread.php?tid=1655,工作所需

持續集成之Installshield_利用命令行或者ant(nant)調用installshield

利用命令行或者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,就可以寫成下面的樣子:
引用:
<target name="Build-ABCD-Main-Installer" description="Build ABCD" depends="Build-ABCD-Jar">
        <echo>Build-ABCD-Main-Installer</echo>
        <echo>     remove the read-only attribute:attrib -r /s * </echo>
        <exec dir="${dir.installer.abcd.main}" executable="attrib">
            <arg value="-r"/>
            <arg value="/s"/>
            <arg value="*"/>
        </exec>            
        <exec dir="${dir.installer.abcd.main}" executable="C:/Program Files/Macrovision/IS 2008 StandaloneBuild/IssaBld.exe">
            <arg line="-p ABCD.ism -o ../testrelease"/>
        </exec>   
    </target>
在windows的命令行下利用installshield打包,大概就可以仿照上面的代碼.
    前提是你的installshield工程文件,在每次build的時候改動比較少.如果每次作一次build,installshield的工程文件都需要改動很多,那麼就直接在installshield的GUI界面下build就可以了.
    這種情況如果要變成自動build就很困難.不過,我們也可以找找installshield所能接受什麼參數,如果你在GUI界面下需要更改的參數,都可以在命令行下給出,那麼則可以省去很多事情.但是這方面我看的還比較少,如果大家誰比較精通,可以來一起分享一下.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章