日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

初次使用InstallShield的筆記

admin
2010年12月2日 12:5 本文熱度 4371

公司的產(chǎn)品需要打包發(fā)布,以前一直沒打包,打包方法的學(xué)習(xí)交給了我


下面的內(nèi)容是我研究過后的,通過回憶寫的筆記。由于不熟悉,可能會(huì)有錯(cuò)誤或者是笨辦法,希望高手指正,感激不盡。


有些東西是什么,以及是什么意思我也不太清楚,反正我照這么做是滿足了我的需求。


需求如下


項(xiàng)目包含主程序和數(shù)據(jù)庫文件兩個(gè)部分,可以選擇這兩個(gè)部分安裝在不同的地方


當(dāng)文件都復(fù)制完之后將數(shù)據(jù)庫文件的安裝路徑寫進(jìn)程序安裝目錄下的一個(gè)ini文件當(dāng)中


工具選擇


1. VS05自帶的打包工具


     一開始選擇的這個(gè)工具,不過我太菜我確實(shí)不知道怎么讓這個(gè)來滿足我們的需求


2. InstallShield 2009 pro


     隨后想到了專業(yè)打包工具IS,下載了較新的版本試用。不過網(wǎng)上教程較少,軟件功能強(qiáng)大,因此在慢慢摸索中。


步驟


1. 開始


   網(wǎng)上說一般的打包工程選擇Basic MSI Project,如果需要對(duì)界面需要進(jìn)行很高的定制就需要選擇InstallScript MSI Project。


 


由于我只需要打包,已經(jīng)執(zhí)行部分腳本因此我選擇了Basic MSI Project。輸入Project Name,選擇Location后點(diǎn)擊OK,新建工程。


進(jìn)入到下圖界面,此時(shí)我們可以選擇兩種打包方式(紅框處選擇)


1.Project Assistant   可以進(jìn)行簡單的類似向?qū)ь惖呐渲眉纯蛇M(jìn)行打包工作,如果選擇這種方式,Visual Studio自帶的工具也能輕松實(shí)現(xiàn)


2.Installation Designer 完全自由化的配置,自我定制程度最高。


根據(jù)需求情況,我自然選擇第二種方式



2.配置


點(diǎn)選Installation Designer,進(jìn)入如下界面


 


紅框處就是需要選擇配置的區(qū)域了。


 


2.1  General Information

在Installation Information中選擇General Information,在這里配置軟件的基本信息


 


紅線處你可以寫上你的大名,你是這個(gè)Project的作者


下面的Setup Langueages可以選擇安裝語言,我這里只考慮了簡體中文,故未更改設(shè)置。



紅框里填寫上你公司的名字和網(wǎng)址,我舉個(gè)例子才寫的這兩個(gè)


 


在Product Properties中填入軟件的信息,軟件的名字、版本什么的。


INSTALLDIR是指安裝目錄,圖中的配置方法默認(rèn)是指這個(gè)路徑:  C:\Program Files\Transformers\Demo


 


2.2 Files

 


右邊的區(qū)域被分成了四塊,上面兩塊是本地計(jì)算機(jī),下面兩塊是目標(biāo)計(jì)算機(jī)


總的思路跟資源管理一樣,這里你就可以按照你自己的思路來定制了


舉個(gè)列子,我隨便找點(diǎn)東西打包


在Destination computer’s folders中把樹展開,選中Demo[INSTALLDIR],這是什么東西相信看看就明白了,如果不明白的話那就需要再學(xué)習(xí)下基礎(chǔ)知識(shí)了。


從Source computer‘s files(本地計(jì)算機(jī))中拖動(dòng)一些文件到Destination computer’s files中,就會(huì)彈出如下提示


 


你需要?jiǎng)?chuàng)建一個(gè)Feature,什么是Feature我不太清楚,我把它理解成一個(gè)文件的集合。輸入名字,我輸入的是Main,點(diǎn)擊OK


 


(如果你看不到上圖中左邊紅框內(nèi)的東西,就在那里的樹狀結(jié)構(gòu)任意節(jié)點(diǎn)點(diǎn)擊右鍵,勾選Show Components就能看到了)


當(dāng)你把你想打包的東西添加進(jìn)入過后,一個(gè)最基本的包就打好了,已經(jīng)可以編譯執(zhí)行嘗試安裝了。


 


工具欄上的圖標(biāo)編譯跟執(zhí)行跟VC++6.0的圖標(biāo)是一樣的吧,第三個(gè)紅圈就是卸載


 


當(dāng)然只做到這一步是不能滿足我的需求的,我還需要添加一個(gè)數(shù)據(jù)庫文件夾,在Demo[INSTALLDIR]上點(diǎn)擊右鍵——選擇New Folder——命名為Database


進(jìn)行圖中操作


 


直接點(diǎn)擊下一步,到第二步,按圖中操作


 


再下一步,將數(shù)據(jù)庫相關(guān)文件都添加進(jìn)去,當(dāng)然你可以先添加一個(gè)文件(夾)進(jìn)去,其余的在“Files and Folders”中繼續(xù)添加。


至此,數(shù)據(jù)庫文件也添加到了安裝包內(nèi),不過默認(rèn)的安裝流程中只有選擇主程序的安裝路徑?jīng)]有選擇數(shù)據(jù)庫的路徑,因此需要手動(dòng)添加。


方法見2.3


 


2.3 Sequences

大家應(yīng)該都安裝過軟件,最菜的人也知道一路點(diǎn)擊“下一步”來安裝程序。這部分就講一下如何定制安裝的順序,就是“上一步”與“下一步”的跳轉(zhuǎn)。


 


最左邊選擇Custom Actions and Sequences后,在中間的樹中如圖操作,User Interface上點(diǎn)擊右鍵——Insert…


 


點(diǎn)擊OK后Sequences樹中多了個(gè)DatabaseFolder,可以拖動(dòng)他到想要的位置。


當(dāng)然Sequences的編輯還沒那么簡單,貌似通過拖動(dòng)無法實(shí)現(xiàn),需要對(duì)每個(gè)窗體進(jìn)行編輯。



如圖所示,圖中的意思就是在選擇DatabaseFolder的路徑的對(duì)話框中,點(diǎn)擊“上一步”按鈕會(huì)跳轉(zhuǎn)到CustomerInformation這個(gè)對(duì)話框中


就是這樣編輯,工作量也不小,或者是有其他什么簡便方法,可是我不知道


 


2.4 動(dòng)態(tài)修改XML或者INI文件

在這個(gè)項(xiàng)目中,我需要將項(xiàng)目的安裝路徑寫在安裝目錄下的一個(gè)ini文件中,這個(gè)ini文件是需要打包在項(xiàng)目中的。


 


首先確保ini文件已經(jīng)添加進(jìn)入打包工程。


 


在INI File Changes中新建一個(gè)與欲改寫的ini文件同名的ini文件——my.ini


在my.ini文件下建立欲改寫的section(我的例子是installdir)以及keyword(例子中是dir),編輯keword


在Data Value中寫入系統(tǒng)變量[INSTALLDIR],這個(gè)就表示程序的安裝目錄。如果要獲取數(shù)據(jù)庫的安裝目錄就可以寫入[DATABASEDIR]


XML的修改跟這個(gè)類似,相信都可以融會(huì)貫通。


在我的實(shí)際項(xiàng)目中,遇到個(gè)問題。


my.ini是mysql要用到的東西,是放在數(shù)據(jù)庫目錄中的,安裝上面的方法略加修改就可以實(shí)現(xiàn)。


但是mysql需要的路徑類似于C:/MyDataBase/MySql/


而通過我上面方法[DATABASEDIR]獲得的路徑是Windows標(biāo)準(zhǔn)的 C:\MyDataBase\MySql\


因此我必須要把這個(gè)斜線給反過來,我不知道怎么反。只知道可能通過腳本來修改(如果有高人知道簡便方法,請指點(diǎn))


腳本見2.5


 


2.5 InstallScript


剛剛接觸,我連在哪里寫腳本都不知道,跟別說如何寫腳本了,雖然我現(xiàn)在也不會(huì)寫腳本~~(求教啊)


雖然還不會(huì)寫腳本,還是先把在哪里寫以及如何運(yùn)行腳本寫出來,希望有跟我有同樣問題的朋友看到。


 


然后出現(xiàn)下圖


 


右邊是編輯區(qū),用于寫腳本。有編程經(jīng)驗(yàn)的話這個(gè)不難理解


腳本的執(zhí)行回到Custom Actions and Sequences,在中間的列表中的Custom Actions上點(diǎn)擊右鍵,選擇Custom Actions Wizard


在Action Type中選擇Run InstallScript code,在Insert into Sequence中的Install Execute Sequence處選擇何時(shí)執(zhí)行,其余按向?qū)崾静僮鳌?/P>







#include "ifx.h"

  

    export prototype ProcessAfterDataMove(HWND);  

    export prototype STRING ReplaceStr(STRING);    

    export prototype RunBat(STRING);



function ProcessAfterDataMove(hMSI)  

   STRING P_Dir,DB_Dir;  // P_Dir是主程序目錄下ini文件的路徑,DB_Dir是數(shù)據(jù)庫的路徑

begin            

   P_Dir = TARGETDIR + "temp.ini"//TARGETDIR是系統(tǒng)變量,存放安裝路徑

   //GetProfString()函數(shù)是系統(tǒng)函數(shù),用于讀取ini文件中的信息

   //第一個(gè)參數(shù)指定文件所在路徑

   //第二個(gè)參數(shù)指定section名

   //第三個(gè)參數(shù)指定keyword名

   //最后一個(gè)參數(shù)用于 返回 前面指定的keyword的值。注意:是返回!  

   GetProfString (P_Dir, "temp", "dir", DB_Dir);

   //ReplaceProfString()函數(shù)是系統(tǒng)函數(shù),用于修改ini文件中keyword的值

   //第一個(gè)參數(shù)指定文件所在路徑

   //第二個(gè)參數(shù)指定section名

   //第三個(gè)參數(shù)指定keyword名

   //第四個(gè)參數(shù)指定keyword原值

   //第五個(gè)參數(shù)指定keyword的新值

   //只有前面4個(gè)條件完全匹配時(shí),原值才會(huì)被第五個(gè)參數(shù)中的新值替換                                                                                         

   ReplaceProfString (DB_Dir + "my.ini", "mysqld", "basedir", "\"" + DB_Dir + "\"", "\"" + ReplaceStr(DB_Dir) + "\"");

   ReplaceProfString (DB_Dir + "my.ini", "mysqld", "datadir", "\"" + DB_Dir + "Data\"", "\"" + ReplaceStr(DB_Dir + "Data") + "\"");

   //執(zhí)行批處理

   RunBat(DB_Dir);

end;  

       

function STRING ReplaceStr(Str)

  LIST StrList;

  STRING temp,path;

begin

  //創(chuàng)建List存放Tokens

   StrList = ListCreate(STRINGLIST);

  //分解出Token存入List

   StrGetTokens( StrList, Str, "\\");

   //取出TokenList的頭節(jié)點(diǎn)

   ListGetFirstString(StrList, temp);

   //頭節(jié)點(diǎn)后加入 “/”

   path = temp + "/"

   //循環(huán) 取出所有的節(jié)點(diǎn) 后面加入“/”

   while(ListGetNextString(StrList, temp) = 0)

       path = path + temp + "/";

   endwhile;

  return path;   

end;       

       

       

function RunBat(DB_Dir)     //執(zhí)行批處理     

  STRING dir;              

begin 

  dir =  DB_Dir + "bin\\exec.bat" ;

  //調(diào)用其他程序

  //第一個(gè)參數(shù)是調(diào)用程序的位置

  //第二個(gè)參數(shù)是調(diào)用程序運(yùn)行所需參數(shù)

  //WAIT表示等到執(zhí)行完畢這個(gè)程序,安裝再繼續(xù)進(jìn)行

  LaunchAppAndWait(dir, "",WAIT); 

end;


該文章在 2010/12/2 12:05:31 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 欧美日韩综合另类 | 亚洲视频在线 | 一区二区三区精品 | 另类专区国产在 | 国产精选污视频在线观看 | 国产亚洲精品资源在 | 中文字幕精品视频第一区第二区 | 日本精品高清一区二区 | 国产亚洲精品国产福利 | 国产欧美视频综合二区 | 国产日韩高清一区二区三区 | 欧美日韩成人一区二区三区 | 欧美精品亚洲精品日韩 | 热门电视剧追剧网站 | 免费观看男女性恔配视频 | 国产精品国产 | 91国内精品在线 | 亚洲偷自拍另类图片二区 | 亚洲三级香港 | 国产在线日韩在线 | 电影大全 | 国产精品青草综合久 | 欧美一区二区 | 亚洲精品在看在线观看高清 | 日日摸夜夜 | 国产噜噜噜精品免费 | 又爽又大又光又色的午夜视频 | 天天综合网天天综合色 | 秒拍视频福利永久国产 | 丰满在线观看 | 亚洲欧美日韩二区三区 | 黑人巨大精品欧美一区二区在线 | 在线成本人视 | 息与子猛烈交尾在线播放 | 青草国产 | 国产最新精品精品视频 | 欧美在线区 | a级全黄试看30分钟gif动图 | 综合网国产国产人 | 狼群影院视频在线观看高清版 | 手机香蕉国产在线 |