Octopacking multiple projects into one NuGet


I have many Solutions, each containing many dll library projects.

These dll libraries need to be deployed into a folder on several servers.
Once deployed, an application (not managed via Octopus) will access the dlls and execute.

My problem is that there are so many dll libraries that need to be deployed in this manner that if I was to create a nuget feed for each project, I would have to spend a lot of time administering Octopus.

Is there a way to create a single nuget package from a given solution, so that all the projects within the solution are packaged into this single nuget package?

This would mean that I will only have 1 feed from TeamCity and I will only need to create one step in Octopus and I can deploy all my dlls into 1 destination folder.
I can then if I want to run a post deploy powershell script to copy the dlls to the necessary locations/cleanup etc.

Many thanks,

Hi Devashi,

Thanks for getting in touch! NuGet isnt really designed to do what you ask. But to achieve it you can do the following:

  1. Have each project place their files into a unique folder
  2. Run nuget.exe with a NuSpec that then packages all those folders into one NuGet package http://docs.octopusdeploy.com/display/OD/Using+NuGet.exe
  3. Run nuget.exe push to move your fiel to your NuGet feed or repository.

Hope that helps!

Hi Vanessa,

Thank you for the reply.
I will try this approach.

So the idea is…

At present I do not have any TeamCity artefacts being created. The nugget package artefacts are being created by OctoPack.
I will remove OctoPack from my projects.
And then contifure TeamCity to dump all the artefacts from the project builds into separate directories.
Then use nuget to repackage it all up.

I will try this and let you know how it goes.