之前有說過使用vs自帶的安裝專案來打包程式,其中也說過那東西打包出來的安裝程式和framework是分開的,使用上來說也不差,但是給使用者難免乙個說明,還要點兩次,不能一傻到底。沒辦法,又花了點時間測試使用了inno setup來打包c#程式。效果就是:安裝程式和執行庫打包成乙個可執行檔案,會根據使用者是否需要安裝環境來決定是否自動安裝,可謂一路下一步傻到底即可。下面給出簡單步驟:
1、開啟inno setup,使用「指令碼嚮導」來建立指令碼。根據步驟輸入相關的資訊即可。
2、然後在生成的**中新增如下**即可:
[code]上面的效果就是檢測登錄檔是否已經安裝了framework2.0,如果安裝了就跳過執行安裝自己的程式(result:=true),然後沒裝framework那麼就將打包程序式的framework解壓到系統臨時目錄,然後執行安裝,安裝後再安裝自己的程式。function checkdotnet2_0():boolean;
begin
result:= not regkeyexists(hklm, 'software\microsoft\.netframework\policy\v2.0');
end;
function initializesetup(): boolean;
var path:string;
resultcode: integer;
begin
if checkdotnet2_0() then
begin
extracttemporaryfile('dotnetfx.exe');
exec(expandconstant('/dotnetfx.exe'), '', '', sw_shownormal, ewwaituntilterminated, resultcode);
end;
if checkdotnet2_0() then
begin
msgbox('請不要跳過所需執行環境安裝嚮導!',mbinformation,mb_ok);
result:=false;
end
else
begin
result:=true;
end;
end;
3、上面的做法基本解決了一傻到底的需求。不過在不同的win系統上體驗卻不同。囧。即如果完全按照上面的來在xp下可以很方便的生成開始選單和桌面的快捷選單,而vista/7系統則不能生成快捷方式。原因沒有琢磨出來,估計和許可權有關吧。後來採用了一種迂迴不是很爽的方式勉強代替,即新增如下**(記住替換掉「指令碼嚮導」生成的**),
[tasks]
name: "desktopicon"; description: ""; groupdescription: "";
效果是在xp/7下可以順利的生成快捷方式,但是在7下不會在開始選單中出現快捷方式(實時上在c:\programdata\microsoft\windows\start menu\programs可以找到快捷方式資料夾,但是死活不出現在開始選單中,氣!故這裡當作失敗,因為不能當作使用者會在上面那個路徑下找快捷方式啊!),所以將執行程式和解除安裝程式的快捷方式全部放在乙個桌面的資料夾下(如上icons,tasks),省的使用者去找。
inno setup還是很強力的,不過時間原因沒有做過多的研究,就先根據上面的認識做成這樣吧。
RPM打包C 程式例項
rpm showrc grep topdir 14 builddir build 14 rpmdir rpms 14 sourcedir sources 14 specdir specs 14 srcrpmdir srpms 14 topdir redhat rpm showrc grep usrs...
C 打包製作安裝程式
該文是根據網上的文章並結合自己實際打包的過程而整理的。開發平台 visualstudio2005中文版。步驟如下 1.建立乙個安裝嚮導專案或安裝部署專案 新建專案 其他專案型別 安裝與部署 安裝嚮導 或安裝部署 如命名為setup。2.將要打包的專案匯入到這個安裝專案中,有兩種方式 第一種,自動方式...
C 之VS程式打包
在要打包的專案的 解決方案資源管理器 中,右擊 解決方案 新增 新建專案 在彈出框中選擇和設定資訊如下圖 建立成功後的資源管理器的結構圖如下圖 general information 還可以設定更加詳細的資訊 installation requirements重點是選擇支援的作業系統和其他依賴的軟體...