291 votesDave commented
This may help some... I've created a 2 step octopus process to do this; the first step pulls down the msi package wraps it in a nugget and pushes it to the octopus repo. The 2nd step turns on maintenance mode, deploys the nugget, installs the msi, then turns maintenance off. I did it like this to ensure the same package goes to the test and live environment and can be done by the users of octopus. It would be far easier if the feature was built in.
62 votesDave commented
This is certainly needed. We roll out a package to 3 servers but server1 has an additional step that is best being ran before the deployment is done to the remaining servers.
Work has begin on providing a tool to evaluate variables before deployment
At the moment we don’t have further plans to apply config transforms before a release but this should help solve the bigger question of “what will my all my variable values actually be at run time”