青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 131, comments - 12, trackbacks - 0, articles - 0
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

使用InstallShield 2009的筆記

Posted on 2012-11-07 14:54 盛勝 閱讀(350) 評(píng)論(0)  編輯 收藏 引用

步驟

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)行簡(jiǎn)單的類似向?qū)ь惖呐渲眉纯蛇M(jìn)行打包工作,如果選擇這種方式,Visual Studio自帶的工具也能輕松實(shí)現(xiàn)

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

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

2.配置

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

image

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

 

2.1 General Information

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

image

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

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

R0(NKEJLG6%FKR7[GF~[6EI

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

image

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

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

 

2.2 Files

003 File and Folders

右邊的區(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ì)彈出如下提示

image

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

image

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

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

image

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

 

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

進(jìn)行圖中操作

image

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

image

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

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

方法見2.3

 

2.3 Sequences

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

image

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

image

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

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

image

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

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

 

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

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

image

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

image

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

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

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

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

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

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

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

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

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

腳本見2.5

 

2.5 InstallScript

 

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

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

image

然后出現(xiàn)下圖

image

右邊是編輯區(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ù)庫(kù)的路徑
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, "http://");
   //取出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;


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            免费高清在线一区| 欧美日韩国产精品专区| 欧美国产先锋| 91久久久久久| 91久久国产综合久久91精品网站| 夜夜嗨av一区二区三区四区| 欧美无砖砖区免费| 亚洲欧美不卡| 亚洲欧美激情四射在线日 | 欧美1区2区3区| 亚洲国产美女久久久久| 欧美福利视频在线| 欧美亚洲一级| 亚洲黄色天堂| 夜夜嗨av一区二区三区免费区| 欧美视频不卡| 久久另类ts人妖一区二区| 久久综合久久综合九色| 99亚洲伊人久久精品影院红桃| 欧美激情第3页| 欧美午夜寂寞影院| 久久久久久久久综合| 欧美大成色www永久网站婷| 亚洲香蕉成视频在线观看| 亚洲欧美韩国| 亚洲久久在线| 亚洲性夜色噜噜噜7777| 亚洲第一福利视频| 99re6这里只有精品| 国产亚洲一区在线| 亚洲欧洲视频在线| 国产欧美一区二区精品秋霞影院| 麻豆91精品| 美女主播视频一区| 亚洲免费在线播放| 亚洲一二三级电影| 欧美亚洲三级| 在线综合亚洲| 久久蜜桃精品| 欧美一区二区三区免费视频| 欧美v国产在线一区二区三区| 午夜伦理片一区| 欧美日韩1区| 欧美福利精品| 激情视频一区| 中国日韩欧美久久久久久久久| 樱桃国产成人精品视频| 亚洲国产天堂久久综合| 国产婷婷色一区二区三区在线| 亚洲第一精品在线| 国产精品黄色在线观看| 欧美一区视频| 欧美新色视频| 亚洲精品少妇| 亚洲国产综合91精品麻豆| 欧美淫片网站| 欧美一区亚洲二区| 国产精品一区二区在线| 一本久道综合久久精品| 在线观看亚洲视频| 久久丁香综合五月国产三级网站| 午夜精品视频在线观看一区二区| 欧美另类久久久品| 亚洲激情午夜| 亚洲第一福利视频| 亚洲综合清纯丝袜自拍| 亚洲婷婷国产精品电影人久久| 久久国产精品色婷婷| 久久精品2019中文字幕| 国产色综合网| 欧美中日韩免费视频| 一二三区精品福利视频| 欧美伦理91i| 午夜日韩av| 亚洲在线1234| 亚洲欧美日韩在线播放| 欧美日韩中文字幕| 一区二区三区久久久| 亚洲专区在线| 国产精品欧美日韩| 亚洲欧美国产一区二区三区| 欧美一区二区三区婷婷月色 | 日韩视频永久免费观看| 欧美大片18| 亚洲欧洲一区二区三区| 日韩亚洲欧美一区| 欧美色视频日本高清在线观看| 91久久精品国产91久久性色tv| 亚洲午夜激情网页| 欧美制服第一页| 韩国一区电影| 欧美高清视频| 亚洲视频 欧洲视频| 久久精品91| 亚洲高清不卡一区| 欧美日韩国产a| 亚洲综合另类| 欧美成人一区在线| 一区二区三区四区蜜桃| 欧美激情亚洲视频| 中日韩高清电影网| 亚洲综合清纯丝袜自拍| 国产精品久久久久aaaa九色| 一区二区三区欧美日韩| 欧美在线观看网站| 亚洲电影第1页| 欧美视频不卡| 久久久五月婷婷| 亚洲伦理自拍| 久久久久一区| 日韩视频一区二区| 国产亚洲制服色| 欧美成人乱码一区二区三区| 一区二区三区精品国产| 久热精品视频| 亚洲一区二区三区在线看| 伊人蜜桃色噜噜激情综合| 欧美日韩亚洲不卡| 中文在线资源观看视频网站免费不卡| 午夜久久tv| 日韩一区二区电影网| 国产视频久久久久| 欧美日韩四区| 开心色5月久久精品| 亚洲一区二区精品在线| 欧美黑人多人双交| 久久高清免费观看| 正在播放欧美一区| 亚洲国产高清视频| 国产日韩在线一区| 欧美午夜www高清视频| 玖玖国产精品视频| 欧美在线一区二区| 午夜性色一区二区三区免费视频| 亚洲精品女人| 久久久久**毛片大全| 亚洲视频中文字幕| 日韩亚洲欧美一区| 亚洲人在线视频| 激情成人在线视频| 国产小视频国产精品| 国产精品女主播一区二区三区| 欧美国产日本在线| 玖玖玖国产精品| 久久亚洲国产成人| 久热精品视频在线免费观看| 亚洲老板91色精品久久| 影音先锋亚洲精品| 黑人巨大精品欧美一区二区小视频| 欧美日韩久久| 欧美成人精品在线观看| 老牛影视一区二区三区| 久久福利视频导航| 日韩西西人体444www| 在线观看亚洲| 尤物99国产成人精品视频| 国产在线播精品第三| 国产色综合久久| 国产日本欧洲亚洲| 国产久一道中文一区| 国产精品二区影院| 欧美视频久久| 国产精品第2页| 国产精品都在这里| 国产伦精品一区二区三区高清| 国产精品美女久久久久久免费| 国产精品va在线播放我和闺蜜| 欧美体内she精视频| 国产精品分类| 国产精品视频免费观看www| 国产精品久久二区二区| 国产精品乱码妇女bbbb| 国产精品一区二区你懂的| 国产欧美一区二区精品秋霞影院 | 欧美成年人网站| 久久久精品日韩欧美| 久久久久久久久蜜桃| 亚洲综合99| 亚洲精品中文字幕在线观看| 99国内精品久久| 91久久一区二区| 99在线精品视频| 校园激情久久| 蜜桃伊人久久| 欧美天堂在线观看| 国产亚洲欧美激情| 亚洲国产二区| 亚洲欧美电影在线观看| 久久噜噜噜精品国产亚洲综合| 欧美国产精品v| 亚洲免费av观看| 欧美一级精品大片| 欧美va天堂va视频va在线| 欧美三级午夜理伦三级中文幕 | 欧美在线观看视频| 欧美电影专区| 亚洲影院免费| 性色av一区二区三区| 亚洲欧美一区二区精品久久久| 亚洲小说欧美另类婷婷|