title | description | author | ms.author | ms.date | ms.topic |
---|---|---|---|---|---|
Install and use a NuGet package in Visual Studio |
A walkthrough tutorial on the process of installing and using a NuGet package in a Visual Studio project. |
JonDouglas |
jodou |
07/24/2018 |
quickstart |
Quickstart: Install and use a package in Visual Studio (Windows only)
NuGet packages contain reusable code that other developers make available to you for use in your projects. See What is NuGet? for background. Packages are installed into a Visual Studio project using the NuGet Package Manager, the Package Manager Console, or the dotnet CLI. This article demonstrates the process using the popular Newtonsoft.Json package and a Windows Presentation Foundation (WPF) project. The same process applies to any other .NET or .NET Core project.
Once installed, refer to the package in code with using <namespace>
where <namespace> is specific to the package you're using. Once the reference is made, you can call the package through its API.
[!Tip] Start with nuget.org: Browsing nuget.org is how .NET developers typically find components they can reuse in their own applications. You can search nuget.org directly or find and install packages within Visual Studio as shown in this article. For general information, see Find and evaluate NuGet packages.
Prerequisites
- Visual Studio 2019 with the .NET Desktop Development workload.
You can install the 2019 Community edition for free from visualstudio.com or use the Professional or Enterprise editions.
If you're using Visual Studio for Mac, see Install and use a package in Visual Studio for Mac.
Create a project
NuGet packages can be installed into any .NET project, provided that the package supports the same target framework as the project.
For this walkthrough, use a simple WPF app. Create a project in Visual Studio using File > New Project, typing .NET in the search box, and then selecting the WPF App (.NET Framework). Click Next. Accept the default values for Framework when prompted.
Visual Studio creates the project, which opens in Solution Explorer.
Add the Newtonsoft.Json NuGet package
To install the package, you can use either the NuGet Package Manager or the Package Manager Console. When you install a package, NuGet records the dependency in either your project file or a packages.config
file (depending on the project format). For more information, see Package consumption overview and workflow.
NuGet Package Manager
-
In Solution Explorer, right-click References and choose Manage NuGet Packages.
-
Choose "nuget.org" as the Package source, select the Browse tab, search for Newtonsoft.Json, select that package in the list, and select Install:
If you want more information on the NuGet Package Manager, see Install and manage packages using Visual Studio.
-
Accept any license prompts.
-
(Visual Studio 2017 only) If prompted to select a package management format, select PackageReference in project file:
-
If prompted to review changes, select OK.
Package Manager Console
-
Select the Tools > NuGet Package Manager > Package Manager Console menu command.
-
Once the console opens, check that the Default project drop-down list shows the project into which you want to install the package. If you have a single project in the solution, it is already selected.
-
Enter the command
Install-Package Newtonsoft.Json
(see Install-Package). The console window shows output for the command. Errors typically indicate that the package isn't compatible with the project's target framework.If you want more information on the Package Manager Console, see Install and manage packages using Package Manager Console.
Use the Newtonsoft.Json API in the app
With the Newtonsoft.Json package in the project, you can call its JsonConvert.SerializeObject
method to convert an object to a human-readable string.
-
Open
MainWindow.xaml
and replace the existingGrid
element with the following:<Grid Background="White"> <StackPanel VerticalAlignment="Center"> <Button Click="Button_Click" Width="100px" HorizontalAlignment="Center" Content="Click Me" Margin="10"/> <TextBlock Name="TextBlock" HorizontalAlignment="Center" Text="TextBlock" Margin="10"/> </StackPanel> </Grid>
-
Open the
MainWindow.xaml.cs
file (located in Solution Explorer under theMainWindow.xaml
node), and insert the following code inside theMainWindow
class:public class Account { public string Name { get; set; } public string Email { get; set; } public DateTime DOB { get; set; } } private void Button_Click(object sender, RoutedEventArgs e) { Account account = new Account { Name = "John Doe", Email = "john@microsoft.com", DOB = new DateTime(1980, 2, 20, 0, 0, 0, DateTimeKind.Utc), }; string json = JsonConvert.SerializeObject(account, Formatting.Indented); TextBlock.Text = json; }
-
Even though you added the Newtonsoft.Json package to the project, red squiggles appears under
JsonConvert
because you need ausing
statement at the top of the code file:using Newtonsoft.Json;
-
Build and run the app by pressing F5 or selecting Debug > Start Debugging:
-
Select on the button to see the contents of the TextBlock replaced with some JSON text:
Related video
Find more NuGet videos on Channel 9 and YouTube.
Next steps
Congratulations on installing and using your first NuGet package!
[!div class="nextstepaction"] Install and manage packages using Visual Studio
[!div class="nextstepaction"] Install and manage packages using Package Manager Console
To explore more that NuGet has to offer, select the links below.