亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 golang 運行 .msi 文件?

如何使用 golang 運行 .msi 文件?

Go
吃雞游戲 2023-06-26 17:35:21
我正在編寫一個函數,該函數將通過將應用程序路徑作為參數來運行 msi 文件。現在該函數返回一個錯誤代碼,表明應用程序的路徑不是有效的 Win32 應用程序。此函數適用于 .exe 文件,但不適用于 .msi 文件。如何重構它以適用于 .msi 文件?func Run(application string) {     cmd := exec.Command(application)     err := cmd.Run()         if err != nil {         log.Fatalf("cmd.Run() failed with %s\n", err)     } }
查看完整描述

2 回答

?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

你可以簡單地通過Windows命令行運行它


   func main(){    

    c := exec.Command("cmd", "/C", "msiexec /a \"pathtotheMSIfile\"")

    if err := c.Run(); err != nil { 

        fmt.Println("Error: ", err)

    }   

}


查看完整回答
反對 回復 2023-06-26
?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

創建一個像這樣的文件:


//go:generate mkwinsyscall -output zmsi.go msi.go

//sys msiInstallProduct(file string, command string) (e error) = msi.MsiInstallProductW

package main


func main() {

   msiInstallProduct(`C:\file.msi`, "")

}

然后構建:


go generate

go mod init msi

go mod tidy

go build

https://github.com/golang/sys/tree/master/windows/mkwinsyscall


查看完整回答
反對 回復 2023-06-26
  • 2 回答
  • 0 關注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號