猿问

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

我正在编写一个函数,该函数将通过将应用程序路径作为参数来运行 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)
    }
}


吃鸡游戏
浏览 164回答 2
2回答

心有法竹

你可以简单地通过Windows命令行运行它   func main(){        c := exec.Command("cmd", "/C", "msiexec /a \"pathtotheMSIfile\"")    if err := c.Run(); err != nil {         fmt.Println("Error: ", err)    }   }

芜湖不芜

创建一个像这样的文件://go:generate mkwinsyscall -output zmsi.go msi.go//sys msiInstallProduct(file string, command string) (e error) = msi.MsiInstallProductWpackage mainfunc main() {   msiInstallProduct(`C:\file.msi`, "")}然后构建:go generatego mod init msigo mod tidygo buildhttps://github.com/golang/sys/tree/master/windows/mkwinsyscall
随时随地看视频慕课网APP

相关分类

Go
我要回答