NuGet packages contain reusable code that other developers make available to us for use in our .NET projects. Often such code is bundled into packages that contain compiled code (as DLLs) along with other content needed in the projects that consume these packages.
Because of these features it cut down production costs, and means developers don’t have to reinvent the wheel when encountering a problem that’s been solved once before.
In simple word, a NuGet package is a single ZIP file with the .nupkg extension that contains compiled code (DLLs), other files related to that code, and includes information like the package's version number.
Because NuGet supports private hosts alongside the public nuget.org host, you can use NuGet packages to share code that's exclusive to an organization or a work group. You can also use NuGet packages as a convenient way to factor your own code for use in nothing but your own projects.
Also, if some (DLLs) are missing in windows that require you project to run you can also package in NuGet packages and deploy with your projects.