如何使用 NuGet 程序包管理器

news/2024/12/13 22:57:32/

快速入门:在 Visual Studio 中安装和使用 NuGet 包(仅适用于 Windows

NuGet 包 包含其他开发人员已提供的在项目中使用的可重用代码。 可以使用 NuGet 包管理器、包管理器控制台或 .NET CLI 在 Microsoft Visual Studio 项目中安装 NuGet 包。 本文演示如何使用常用 Newtonsoft.Json 包创建 Windows Presentation Foundation (WPF) 项目。 相同的过程适用于任何其他 .NET.NET Core 项目。

安装 NuGet 包后,可以使用 using <namespace> 语句在代码中引用它,其中 <命名空间> 是正在使用包的名称。 创建引用后,就可以通过 API 调用包。

若要查找 NuGet 包,请从 nuget.org 开始。浏览 nuget.org.NET 开发人员通常在自己的应用程序中查找可重用组件的方式。 你可以直接搜索 nuget.org 或如本文所示,在 Visual Studio 中查找和安装包。

一、先决条件

安装 Visual Studio 2022 for Windows.NET 桌面开发工作负载。

二、创建项目

你可将 NuGet 包安装到任何 .NET 项目,前提是此包支持与项目相同的目标框架。 不过,在本快速入门中,你将创建一个 Windows Presentation Foundation (WPF) 应用程序项目。

执行以下步骤:

  1. Visual Studio 中,选择 “文件” “新建” “项目”。

  2. “创建新项目” 窗口中,在搜索框中输入 WPF,然后在下拉列表中选择 C#Windows。 在得到的项目模板列表中,选择 “WPF 应用程序”,然后选择“下一步”。

  3. 在 “配置新项目” 窗口中,根据需要更新项目名称解决方案名称,然后选择“下一步”。

  4. 在 “其他信息” 窗口中,为 “框架” 选择 .NET 6.0(或最新版本),然后选择“创建”。

    Visual Studio 将创建项目并出现在解决方案资源管理器中。

三、添加 Newtonsoft.Json Nuget

若要在快速入门期间安装 NuGet 包,可以使用 NuGet 包管理器或包管理器控制台。 根据项目格式,NuGet 包安装会将依赖项记录在项目文件或 packages.config 文件中。 有关详细信息,请参阅包使用工作流。

3.1 NuGet 程序包管理器

若要使用 NuGet 包管理器,在 Visual Studio 中安装 Newtonsoft.Json 包,请按照下列步骤操作:

  1. 选择 “项目” > “管理 NuGet 包” 。
  2. 在 “NuGet 包管理器” 页中,选择 nuget.org 作为包源
  3. 在 “浏览” 选项卡中,搜索 Newtonsoft.Json,在列表中选择 Newtonsoft.Json,然后选择 “安装”。
  4. 如果系统提示验证安装,请选择 “确定”。

在这里插入图片描述

3.2 程序包管理器控制台

或者,若要使用 Visual Studio 中的 包管理器控制台 安装 Newtonsoft.Json 包,请按照下列步骤操作:

  1. Visual Studio 中,依次选择 “工具>” “NuGet 包管理器” “包管理器控制台

  2. 包管理器控制台打开后,验证 “默认项目” 下拉列表中是否显示在程序包中要安装的项目。 如果解决方案中只有一个项目,则会预选该项目。

  3. 在控制台提示下,输入 Install-Package Newtonsoft.Json 命令。 有关此命令的详细信息,请参阅 Install-Package。

    控制台窗口会显示该命令的输出。 错误通常指示程序包与项目的目标框架不兼容。

四、在应用中使用 Newtonsoft.Json API

使用项目中的 Newtonsoft.Json 包,可调用 JsonConvert.SerializeObject 方法将对象转换为可人工读取的字符串:

  1. 解决方案资源管理器中,打开 MainWindow.xaml,并将现有 <Grid> 元素替换为以下代码:

    <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>
    
  2. 打开 MainWindow.xaml 节点下的 MainWindow.xaml.cs 文件,并在构造函数之后在 MainWindow 类中插入以下代码:

    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, Newtonsoft.Json.Formatting.Indented);TextBlock.Text = json;
    }
    
  3. 若要避免代码中 JsonConvert 对象的错误(将出现红色波浪线),请在代码文件的开头添加以下语句:

    using Newtonsoft.Json;
    
  4. 若要构建并运行应用,请按 F5 或选择 “调试” “启动调试”。


http://www.ppmy.cn/news/1554869.html

相关文章

前端视角下的Go语法学习:创建 Go 项目

今日话题 使用 GoLand 创建 Go 项目 作者&#xff1a; 时间&#xff1a;2024年6月20日 17时16分14秒 主线任务 一、GoLand 创建项目 1、点击 “new Project” 按钮 2、已经有下载过两个 Golang SDK 版本&#xff0c;选择版本创建即可~ 3、如果没有下载过Golang SDK&#…

asp.net老项目运维,出现的问题6之数据库

数据库会有很多张表&#xff0c;表内一般会有自增列&#xff0c;如果想统一管理这个自增数值&#xff0c;可以使用如下方法&#xff0c;放在一个存储过程中&#xff0c;想用的时候调用存储过程即可生成数据库层面的全局唯一值&#xff1a; create procedure [dbo].[P_getSeqID…

Transformer学习记录

参考链接 揭密Transformer&#xff1a;大模型背后的硬核技术-知乎 Attention中的Q&#xff0c;K&#xff0c;V是什么-知乎 Transformer 1. Embedding Embedding&#xff0c;给大模型装上了嘴巴、眼睛和耳朵。 顺着这个技术路线&#xff0c;更多其它类型传感器的数据采集下来…

YOLOv8-ultralytics-8.2.103部分代码阅读笔记-dataset.py

dataset.py ultralytics\data\dataset.py 目录 dataset.py 1.所需的库和模块 2.class YOLODataset(BaseDataset): 3.class YOLOMultiModalDataset(YOLODataset): 4.class GroundingDataset(YOLODataset): 5.class YOLOConcatDataset(ConcatDataset): 6.class Sema…

如何理解UDP 和 TCP? 区别? 应用场景?

理解 UDP 和 TCP 的区别及应用场景 目录 什么是 TCP 和 UDP TCP(传输控制协议)UDP(用户数据报协议)TCP 和 UDP 的区别 可靠性传输方式流量控制和拥塞控制速度与延迟数据包大小和开销应用场景 TCP 的应用场景UDP 的应用场景代码示例 TCP 服务器和客户端示例UDP 服务器和客户…

矩阵源代码部署与功能简介

在当今短视频盛行的时代&#xff0c;矩阵系统的出现为内容创作者和运营团队提供了极大的便利。本文将详细介绍矩阵系统的源代码部署流程及其核心功能&#xff0c;并附上部分源代码示例&#xff0c;以帮助读者更好地理解这一系统。 一、矩阵系统源代码部署 1. 需求分析 在进行源…

自行车租赁

文末获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 摘 要 本文论述了一个基于java平台、B/S(浏览器和服务器结构)的自行车租赁系统。设计原理、设计思想及具体的实现过程&#xff0c;对在设计过程中涉及到的关键设计思想及重要作业流程作了具体分析和介…

基于用户多元需求视角下 AI 智能名片 O2O 商城小程序的价值与发展策略

摘要&#xff1a;本文深入剖析在当今用户需求多元化的背景下&#xff0c;从显性与隐性需求层面探讨各类产品的发展趋势。以海飞丝等产品为例阐述传统产品功能与新兴多元需求的演变&#xff0c;进而引入 AI 智能名片 O2O 商城小程序&#xff0c;详细分析其如何契合用户多维度需求…