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.
Solution 1:
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:
- Download the NuGet Package Explorer.
- Open the NuGet Package Explorer, select the create a new package.
- Add a lib folder on the content tab, and add your dlls file
- Save the package and install it to the project, check if it add references.
Second, Just as Lex Li mention, We could use .nuspec to pack up the assemblies:
-
Download the nuget.exe.
-
Create a new project.
-
Open a cmd and switch path to nuget.exe
-
Use command line:
nuget spec "PathOfProject\TestDemo.csproj"
-
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>
-
Use pack command:
nuget pack TestDemo.csproj.nuspec
-
Open the TestDemo package by NuGet Package Explorer.
Solution 2:
I think the best way to create NuGet packages is use nuget.exe
.
- First, download and install nuget.exe (https://www.nuget.org/downloads)
- Then go to your project folder, press shift + right click to display command prompt
-
In the command prompt, enter
nuget spec
You will now have a
.nuspec
file. Open it in an editor and add Id, author, etc.-
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>
-
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.
Solution 3:
If you want to do it through Visual Studio or dotnet, then you can edit your csproj file, add an ItemGroup to include the dlls as below: This will pack the other dlls along with your current project dll in the nuget package.
<ItemGroup>
<Content Include="<path to other dll>">
<Pack>true</Pack>
<PackagePath>lib\$(TargetFramework)</PackagePath>
</Content>
</ItemGroup>