Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create nuget package from dlls

I want to create a NuGet package which adds multiple .dll files as references to my project.

I have a folder with 10 .dlls files in it.

When I install this via nuget, I want these files to be added to the project's references.

like image 774
Danhol86 Avatar asked Apr 07 '17 12:04

Danhol86


People also ask

How do I create a NuGet package from a DLL in Visual Studio 2017?

You can configure Visual Studio to automatically generate the NuGet package when you build the project. In Solution Explorer, right-click the project and choose Properties. In the Package tab, select Generate NuGet package on build.

What is the difference between DLL and NuGet package?

When you add features to your project via a nuget package, you're just adding files to your project. It can be javascript files (like jQuery), DLLs that your project references (like Newtonsoft JSON), or a whole bunch of things (like Entity Framework or Owin/SignalR) -- anything really.


2 Answers

I want to create a nuget package which adds multiple .dll as references to my project.

I would like give you two solutions to achieve this:

First, Use NuGet Package Explorer

  1. Download the NuGet Package Explorer.
  2. Open the NuGet Package Explorer, select the create a new package.
  3. Add a lib folder on the content tab, and add your dlls file
  4. Save the package and install it to the project, check if it add references.

NuGet Package Explorer GUI

Second, Just as Lex Li mention, We could use .nuspec to pack up the assemblies:

  1. Download the nuget.exe.

  2. Create a new project.

  3. Open a cmd and switch path to nuget.exe

  4. Use command line: nuget spec "PathOfProject\TestDemo.csproj"

  5. Open the TestDemo.csproj.nuspec file and modify it and add the assemblies as file; below is my .nuspec file:

    <?xml version="1.0"?> <package>   <metadata>     <id>TestDemo</id>     <version>1.0.0</version>     <authors>Tester</authors>     <owners>Tester</owners>     <requireLicenseAcceptance>false</requireLicenseAcceptance>     <description>TestDemo</description>     <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>     <copyright>Copyright 2017</copyright>     <tags>Tag1 Tag2</tags>   </metadata>   <files>     <file src="MultipleDll\*.*" target="lib\net461" />   </files> </package> 
  6. Use pack command: nuget pack TestDemo.csproj.nuspec

  7. Open the TestDemo package by NuGet Package Explorer.

NuGet Package Explorer - built package output

like image 140
Leo Liu-MSFT Avatar answered Sep 20 '22 14:09

Leo Liu-MSFT


I think the best way to create NuGet packages is use nuget.exe.

  1. First, download and install nuget.exe (https://www.nuget.org/downloads)
  2. Then go to your project folder, press shift + right click to display command prompt
  3. In the command prompt, enter

    nuget spec 
  4. You will now have a .nuspec file. Open it in an editor and add Id, author, etc.

  5. The most important part is the files tag after closed metadata tag.

    You can define all dlls here like this:

    <files>    <file src="bin\Release\YourDll.dll" target="lib"></file> </files> 
  6. Finally, you can create .nupkg file with this command:

    nuget pack 'Your_nuspec_file_name' 

This video on How to Create Nuget Packages has a very useful and clear tutorial.

like image 43
masehhat Avatar answered Sep 23 '22 14:09

masehhat