I have a solution that I'm working on that contains 4 class library projects (A
, B
, C
, D
). A
and B
could be considered the top level projects in the solution. Both A
and B
reference C
, and D
stands alone.
These four projects represent a group of services that I have made that handle an automated workflow. They are all closely related, and will only be used in one location (the service manager) so I don't want to split them into different solutions.
My problem is that I want to create a single NuGet package that will contain all 4 libraries, without having to build them all and gather up their DLLs manually. I know that I could technically achieve this by having either A
or B
reference the remaining projects, but that's not a true relationship and I feel it should be avoided.
I've done a lot of searching on this problem and I can't find a solution other than manually collecting the DLLs and building the package myself. Is there a way to achieve the result that I want using NuGet's features/abilities?
NOTE: In case the tags don't make it clear I'm currently using VS2010 with a TeamCity build server. In case it's relevant I'm also using Git through a Stash server.
EDIT: I just realized this might be important enough to mention. These projects do reference other NuGet packages that I will need to mark as dependencies.
You have to define your own nuspec manifest. You can list containing assemblies in files
section:
<file src="A\bin\Release\A.dll" target="lib\net40" />
<file src="B\bin\Release\B.dll" target="lib\net40" />
...
For more details read NuSpec reference.
Then reference that nuspec file in NuPack build step instead of proj.