Clickonce

Hi

Anyone using OD to deploy ClickOnce package? We have several projects using ClickOnce and we’re currently working out the best way for OD to configure, sign and deploy ClickOnce packages. The problem is how to re-sign the ClickOnce package as soon as it has been reconfigured, with the production certificate.
A couple of ideas:

  • Embed the production certificate as a variable and when deploying, use mage.exe to re-sign certificate. Crucial that variable permissions are set correct here.
  • *Install production certificate on standalone machine/tentacle and let the tentacle reconfigure, sign and deploy packages via xcopy/msdeploy.
  • Additionally we would need to write custom script to support web.config transformation for the app.config file named [applicationname].exe.config.deploy in a ClickOnce application deployment package. Maybe OD should support applying transformations for this too.

    Any thoughts/ideas?

    I would like to see separate environment packages available. Have a Nuget package for each environment within one release.

    I personally haven’t used it but the PowerShell library mentioned in this blog post has some ClickOnce support:
    http://octopusdeploy.com/blog/builddeploysupport

    It should get you at least partway there.

    Hi Guys,

    We also have a number of click once applications that we needed to have deployed through Octopus. We ended up using powershell and manually manipulating the .application and .manifest files.

    The files attached are the .PS1 files for the deployment steps. In Visual Studio you will need to disable hashing for the manifest file and the config file. Also you will need to Exlude the deployment provider URL.

    Hope this helps!

    Deploy.zip (2 KB)

    Hi everybody. We ended up cooking a script up too, and a sample app. It is located here https://bitbucket.org/jnus/clickonceandoctopusdeploy/wiki/Home

    Another approach where you build the CO package on the build server and configure and resign at deployment time. Better approach than the above, since you don’t get the dependency installer.

    Can be implemented with the following lib -> https://github.com/rasmus/CiPsLib/blob/master/tools/CiPsLib.ClickOnce.psm1