Usging NuGet for software deployment?
Developers here work on rewriting\refactoring our product to have modular design rather then monolith. We consider using NuGet packages for deploying. Octopus uses NuGet for packaging:
Before you can deploy an application using Octopus, you will need to bundle all of the executables, DLL's, configuration files, installation scripts, and anything else the application needs to run into a package. Octopus standardizes on the NuGet package format, a popular ZIP-based file format from Microsoft used in Visual Studio.
We have a bunch of different things to be deployed as part of release: windows services, IIS sites, CRM solutions, database packages. I've played with NuGet to see how it fits our project. Here are some nuances I found in behavior of command line NuGet clients:
- NuGet always creates folder during install. Folder naming could be '<packageId>' or '<packageId>.<version>'
- There is no easy way to downgrade package
- There is no such thing as uninstalling package
So there is really not much for us except repository and dependencies. Which is quite good things anyway.
I don't think it will be an options for us, but I should have a look on Chocolatey though.
We are using Web Deploy 3.5 right now, which I also don't like much. So far good deployment for me looks like fusion of PowerShell DSC and NuGet.
Will it succeed? - Time will tell.