Nuget总结

在这里插入图片描述

什么是Nuget

NuGet是一个.NET平台下的开源项目,是.NET平台的包管理工具。它可以创建、上传和引用package,并且可以通过NuGet Gallery或自己搭建程序集源去使用Nuget package。
在这里插入图片描述

Nuget包的扩展名为.nupkg的单个ZIP文件,其中包含编译代码(dll)、与该代码相关的其他文件以及描述性清单(包含包版本号等信息)。

  • 代码相关的其他文件:NuGet包还可能包含其他与代码相关的文件。这可能包括文档、图像、配置文件、语言文件(用于本地化)或者其他任何与该程序集一起使用或需要的文件。这些额外的文件确保了包的完整性和一致性,并为用户提供了更多关于如何使用该包的信息。
  • 描述性清单(包含包版本号等信息):在NuGet包中,有一个特殊的清单文件(通常是XML格式),用于描述包的基本信息和元数据。这个清单文件包含了包的名称、版本号、描述、作者、版权信息等,这些信息对于用户了解和使用包非常重要。此外,清单还可以包含指向包中其他文件的引用,例如程序集的名称和版本,以及指向任何文档或额外文件的链接。

Nuget客户端工具

包括但不限于:

  • dotnet SDK:适用于 .NET Core 和 .NET Standard 库的 CLI 工具,以及任何 SDK 样式项目(例如面向 .NET Framework 的项目 )。 此 CLI 工具包含在 .NET Core SDK 中,并在所有平台上提供核心 NuGet 功能。 在 Visual Studio 2017 及更高版本中,dotnet CLI 会自动随任何 .NET Core 相关工作负载一起安装。
  • nuget.exe:适用于 .NET Framework 库和任何 非 SDK 样式项目的 CLI 工具,例如面向 .NET Standard 库的项目。 在 Mono 下运行时,此 CLI 工具在 Windows 上提供所有 NuGet 功能,以及 Mac 和 Linux 上的大多数功能。
  • IDE中的包管理器:程序包管理器 UI 和 程序包管理器 控制台(Windows 上的 PowerShell)。

如何管理Nuget包

使用IDE管理Nuget包

  • 查找安装
    在这里插入图片描述
    注意要安装的包的名称、版本以及package source。
  • 更新包
    在这里插入图片描述
  • 管理解决方案的包
    在这里插入图片描述
    至此,我们可以将Nuget包引入到项目中,包被下载到了一个nuget公共目录,例如Windows10系统上是 C:\Users\Username.nuget\packages,这样nuget包就不会被重复下载。而在项目中nuget仅仅将依赖信息写入了csproj项目文件与obj文件夹中的project.assets.json,其中csproj项目文件中的内容如下。
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
  </ItemGroup>
</Project>

实际Nuget包的引用场景:在这里插入图片描述
在此项目中,有三个不同的地方引用了B,而这三个引用可能对B包的版本有不同的要求。Nuget会自动管理所有包的依赖关系。对于被多次引用的包,Nuget会找到一个版本,以满足所有使用者的需求(但在某些情况下,由于版本冲突,可能无法找到合适的包)。

使用dotnet CLI管理

  • 安装特定版本的包
dotnet add package <PACKAGE_NAME> -v <VERSION>
  • 删除包
dotnet remove package <PACKAGE_NAME>

使用NuGet CLI 管理 NuGet 包

  • 安装包
    使用 -OutputDirectory 选项将包安装到特定目录。 如果未指定输出目录,install 会使用当前目录。
nuget install <packageID | configFilePath> -OutputDirectory <outputDirectory>

可以指定当前或另一个目录中的现有 packages.config 文件,而不是指定要安装的包。 该 install 命令将安装 packages.config 文件中列出的所有包。

nuget install packages.config
  • 安装特定版本的包
nuget install <packageID | configFilePath> -Version <version>

注意:install 命令不会修改项目文件或 packages.config 文件。 install 和 restore 命令仅将包添加到磁盘,但不向项目添加依赖项。 若要添加项目依赖项,请通过 Visual Studio 包管理器 UI或包管理器控制台添加包。

  • 更新所有包
    使用 update 命令将项目 packages.config 文件中的所有包更新为其最新可用版本
nuget update
  • 删除包
    若要删除包,请从项目文件夹中删除该包。
    从磁盘中删除包不会更新项目、packages.config 或 NuGet.Config 文件。 删除包的最佳方式是通过 IDE包管理器 UI 。

创建Nuget包

使用 dotnet CLI 创建 NuGet 包
设置属性:
配置项目文件(<项目名>.csproj)以指定包的元数据和依赖项。
例如,你可以添加版本号、描述、作者等元数据,以及任何其他依赖项。

<Project Sdk="Microsoft.NET.Sdk">  
  
  <PropertyGroup>  
    <TargetFramework>netstandard2.0</TargetFramework>  
    <PackageId>YourPackageId</PackageId>  
    <Version>1.0.0</Version>  
    <Authors>YourName</Authors>  
    <Description>Your package description</Description>  
  </PropertyGroup>  
  
  <ItemGroup>  
    <PackageReference Include="YourPackageDependency" Version="1.0.0" />  
  </ItemGroup>  
  
</Project>

运行创建命令:

dotnet pack -c Release

这将使用Release配置构建NuGet包,也可以使用-c Debug选项来构建Debug版本的包。
构建完成后,将在项目目录的bin\Release(或bin\Debug)子目录中生成一个NuGet包(.nupkg)。
使用 nuget.exe CLI 创建包
创建包清单(.nuspec)

nuget spec

清单:
介绍包的内容和自己是否包含在包中。
驱动包的创建并且指示 NuGet 如何将包安装到项目。 例如,清单识别其他包依赖项,这样,NuGet 还可以在安装主包时安装这些依赖项。
如下所示,包含所需属性和可选属性。 有关确切的详细信息(包括此处未提及的其他属性),请参阅 .nuspec 引用。

所需属性:
包标识符在承载包的库中必须是唯一的。
窗体 Major.Minor.Patch[-Suffix] 中特定的版本号,其中 -Suffix 标识预发布版本
包标题应出现在主机上(例如 nuget.org)
创建者和所有者信息。
对包的详细说明。

常见可选属性:
发行说明
版权信息
对 Visual Studio 中的包管理器 UI 的简短说明
区域设置 ID
项目 URL
作为表达式或文件的许可证(licenseUrl 将被弃用,请改为使用 license nuspec 元数据元素)
图标文件(iconUrl 将被弃用,请改为使用 icon nuspec 元数据元素)
依赖项和引用的列表
协助库搜索的标记

例如:

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <!-- Identifier that must be unique within the hosting gallery -->
        <id>Contoso.Utility.UsefulStuff</id>

        <!-- Package version number that is used when resolving dependencies -->
        <version>1.8.3</version>

        <!-- Authors contain text that appears directly on the gallery -->
        <authors>Dejana Tesic, Rajeev Dey</authors>

        <!-- 
            Owners are typically nuget.org identities that allow gallery
            users to easily find other packages by the same owners.  
        -->
        <owners>dejanatc, rjdey</owners>
        
         <!-- Project URL provides a link for the gallery -->
        <projectUrl>http://github.com/contoso/UsefulStuff</projectUrl>

         <!-- License information is displayed on the gallery -->
        <license type="expression">Apache-2.0</license>
        

        <!-- Icon is used in Visual Studio's package manager UI -->
        <icon>icon.png</icon>

        <!-- 
            If true, this value prompts the user to accept the license when
            installing the package. 
        -->
        <requireLicenseAcceptance>false</requireLicenseAcceptance>

        <!-- Any details about this particular release -->
        <releaseNotes>Bug fixes and performance improvements</releaseNotes>

        <!-- 
            The description can be used in package manager UI. Note that the
            nuget.org gallery uses information you add in the portal. 
        -->
        <description>Core utility functions for web applications</description>

        <!-- Copyright information -->
        <copyright>Copyright ©2016 Contoso Corporation</copyright>

        <!-- Tags appear in the gallery and can be used for tag searches -->
        <tags>web utility http json url parsing</tags>

        <!-- Dependencies are automatically installed when the package is installed -->
        <dependencies>
            <dependency id="Newtonsoft.Json" version="9.0" />
        </dependencies>
    </metadata>

    <!-- A readme.txt to display when the package is installed -->
    <files>
        <file src="readme.txt" target="" />
        <file src="icon.png" target="" />
    </files>
</package>

运行创建命令:

nuget pack <清单名>.nuspec

构建完成后,将在当前目录中生成一个NuGet包文件(.nupkg)。

发布Nuget包

发布到nuget.org
若要在 nuget.org 上发布,请使用 Microsoft 帐户登录 nuget.org,并使用它创建 nuget.org 帐户。
在这里插入图片描述
上传过程:
在这里插入图片描述
使用命令行推送
dotnet CLI:

dotnet nuget push <包名>.nupkg -s <源URL> -k <API密钥>

将 <包名>.nupkg 替换为你的NuGet包的文件名,<源URL> 替换为你的NuGet存储库的URL,<API密钥> 替换为你的NuGet存储库的API密钥。这将将你的NuGet包发布到指定的NuGet存储库。
Nuget.exe CLI:

nuget push YourPackageName.nupkg -s <源URL> -k <API密钥>

将 YourPackageName.nupkg 替换为你的NuGet包的文件名,<源URL> 替换为你的NuGet存储库的URL,<API密钥> 替换为你的NuGet存储库的API密钥。这将将你的NuGet包发布到指定的NuGet存储库。
创建 API 密钥

  1. 登录你的 nuget.org 帐户,或创建一个帐户

  2. 选择右上角的用户名,然后选择“API 密钥”。

  3. 选择“创建”,为秘钥提供一个名称。

  4. 在“选择范围”下,选择“推送”。

  5. 在“选择包>”“Glob 模式”下,输入 *。

  6. 选择创建。

  7. 选择“复制”以复制新秘钥。
    在这里插入图片描述

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果您使用的是 Visual Studio,您可以在项目中使用 NuGet 程序包管理器来安装 Prism 库。 以下是安装 Prism 的步骤: 1. 打开 Visual Studio 中的项目。 2. 右键单击项目,选择 “管理 NuGet 程序包”。 3. 在 NuGet 程序包管理器中,在搜索框中输入 “Prism.Core”。 4. 选择 “Prism.Core” 程序包,并单击 “安装” 按钮。 5. 接受程序包的许可协议,然后单击 “确定”。 6. 安装过程结束后,您可以在项目中使用 Prism 库。 如果您遇到任何问题,请参阅 Prism 官方文档或社区论坛,以获得帮助。 ### 回答2: 要在NuGet上安装Prism,您可以按照以下步骤进行操作: 1. 打开Visual Studio,并在解决方案资源管理器中选择您的项目。 2. 右键单击项目,然后选择“管理NuGet程序包”选项。 3. 在NuGet程序包管理器窗口的搜索框中,输入“Prism”并点击搜索按钮。 4. 在搜索结果中找到“Prism.Core”或其他您需要的Prism包,并点击安装按钮。 5. NuGet程序包管理器将开始下载和安装Prism包及其依赖项。 安装完成后,您可以利用Prism框架的功能来构建模块化、可扩展和可维护的应用程序。Prism提供了一组工具和类,用于帮助您使用MVVM(Model-View-ViewModel)模式来组织和开发应用程序。 安装Prism后,您可以通过在代码中使用Prism的命名空间来访问其功能。您还可以使用Prism的特性和类来定义视图模型、导航、事件聚合等。 使用Prism可以提高应用程序的可重用性和可测试性,并提供一种结构化的方法来管理应用程序的各个模块。Prism还提供了多种开箱即用的功能,如事件聚合器、导航框架和模块加载器。 总之,使用NuGet安装Prism可以为您的项目提供强大的开发工具和模块化的架构,帮助您构建出高质量、可扩展和可维护的应用程序。 ### 回答3: NuGet是一个包管理工具,用于在.NET平台上安装、更新和卸载软件包。Prism是一个开源的用于构建可扩展且可重用的模块化、解耦的WPF和Xamarin.Forms应用程序的框架。 要在项目中安装Prism,首先需要打开Visual Studio,并确保已经安装了NuGet插件。 接下来,打开项目解决方案,右键点击项目名称,选择“管理NuGet程序包”。在打开的NuGet管理器窗口中,搜索框中输入“Prism”,找到合适的Prism包,点击“安装”按钮开始安装。 NuGet将会自动下载并安装Prism框架及其所依赖的其他软件包。安装完成后,可以在项目中的引用部分看到新添加的Prism引用。 安装完成后,可以在代码中使用Prism框架提供的功能和类库。可以使用Prism来实现应用程序的模块化、导航、依赖注入等功能。 使用Prism可以将应用程序的各个功能模块解耦,使得代码更易于维护和测试。此外,Prism还提供了一套基于MVVM模式的开发指南,可以帮助开发者更好地组织和管理项目的代码。 总结起来,安装Prism框架只需要通过NuGet进行简单的安装即可,并且可以通过Prism框架来构建具有模块化、解耦、可扩展性以及基于MVVM模式的WPF和Xamarin.Forms应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值