windows installer的簡單應用
2023年11月12日
因為要做乙個類似windows update的東西,以免程式更新時跑來跑去麻煩,雖然類似的工具很多,但是大都很複雜,於是決定自己做乙個類似的簡單程式。
對比客戶端和伺服器端的程式版本,並把伺服器端新版本程式拷回來都好做(用vpn,相當於區域網內檔案複製),但是安裝新版本程式就有問題了,因為windows installer安裝程式時如果發現有以前的版本就會要求你自己刪除舊版程式後再重新安裝,但我要實現的是自動解除安裝並安裝。直接執行msi檔案出錯,那我就穿引數,因為沒有找到相關資料就猜解除安裝應該是/u,執行的時候沒有解除安裝來反倒是彈出來乙個對話方塊,裡面有windows installer的引數設定介紹:
windows (r) installer. v 3.01.4000.1830
msiexec /option [optional parameter]
安裝選項
安裝或配置產品
/a 管理安裝 - 在網路上安裝產品
/j [/t ] [/g ]
播發產品 - m 播發到所有使用者,u 播發到當前使用者
解除安裝產品
顯示選項
/quiet
安靜模式,無使用者互動
/passive
無從參與模式 - 只顯示程序欄
/q[n|b|r|f]
設定使用者介面級別
n - 無使用者介面
b - 基本介面
r - 精簡介面
f - 完整介面(預設值)
/help
幫助資訊
重新啟動選項
/norestart
安裝完成後不重新啟動
/promptrestart
提示使用者重新啟動(如果必要)
/forcerestart
安裝後總是重新啟動計算機
日誌選項
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*]
i - 狀態訊息
w - 非致命警告
e - 全部錯誤訊息
a - 操作的啟動
r - 操作特定記錄
u - 使用者請求
c - 初始介面引數
m - 記憶體不足或致命退出資訊
o - 磁碟空間不足訊息
p - 終端屬性
v - 詳細輸出
x - 額外除錯資訊
+ - 擴充套件到現有日誌檔案
! - 每一行重新整理到日誌
* - 記錄所有資訊,除了 v 和 x 選項
/log
與 /l* 相同
更新選項
/update [;update2.msp]
應用更新
/uninstall [;update2.msp] /package
刪除產品的更新
修復選項
/f[p|e|c|m|s|o|d|a|u|v]
修復產品
p - 僅當檔案丟失時
o - 如果檔案丟失或安裝了更舊的版本(預設值)
e - 如果檔案丟失或安裝了相同或更舊的版本
d - 如果檔案丟失或安裝了不同版本
c - 如果檔案丟失或較驗和與計算的值不匹配
a - 強制重新安裝所有檔案
u - 所有必要的使用者特定登錄檔項(預設值)
m - 所有必要的計算機特定登錄檔項(預設值)
s - 所有現有的快鍵方式(預設值)
v - 從源執行並快取本地資料報
設定公共屬性
[property=propertyvalue]
請查閱 windows (r) installer sdk 獲得有關
命令列語法的其他文件。
此軟體的部分內容系基於 independent jpeg group 的工作。
按這個傳引數試了好多次(我比較笨),終於成功了。下面把**貼出來,要安裝的程式名是clock.msi
using system;
using system.diagnostics;
public class maintest }
}
Windows Installer的簡單應用
windows installer的簡單應用 2010年11月12日 因為要做乙個類似windows update的東西,以免程式更新時跑來跑去麻煩,雖然類似的工具很多,但是大都很複雜,於是決定自己做乙個類似的簡單程式。對比客戶端和伺服器端的程式版本,並把伺服器端新版本程式拷回來都好做 用vpn,相...
css vertical align簡單的應用
vertical align屬性值 我見過的 1 用來寫在img標籤上,讓兩旁的字與底部 頂部 中間對齊 vertical align text top vertical align text bottom vertical align middle 這一前面的文字 這一前面的文字 src asse...
BroadcastReceiver簡單應用例項
broadcastreceiver是android四大元件之一,主要用於接收廣播,它的簡單實現方法如下 1 定義繼承broadcastreceiver的myreceiver類 created by haoye on 2016 3 7.public class myreceiver extends b...