The
clickonce
package allows to download a ClickOnce application.
Just import the library and set the URL of the ClickOnce application you want to download.
import "github.com/whitone/clickonce"
co := &clickonce.ClickOnce{}
co.Init("https://my.cool.webserver/clickonce.application")
Then you can dump the remote contents related to requested application with the following method.
err := co.GetAll()
if err != nil {
log.Fatal(err)
}
And then, for example, you can check the content type and path of all deployed files.
for dPath, dContent := range co.DeployedFiles() {
fmt.Printf("%s: %s", dPath, http.DetectContentType(dContent))
}
If you want to save in a directory the application files, just set the output directory. If that directory not exists, will be created.
co.SetOutputDir("application")
If you need only some files from the application, just define your subset.
err := co.Get([]string{"application.exe", "library.dll"})
if err != nil {
log.Fatal(err)
}
To get more info about the progress of your request, you can enable verbose mode by passing your logger to the library.
logger := log.New(os.Stdout, "", log.LstdFlags)
co.SetLogger(logger)
clickonce
is licensed under the BSD-3-Clause License.