zoukankan      html  css  js  c++  java
  • nuget 包管理器

    nuget 是.Net平台上的包管理器, 对于包的发布(打包 package)和消费(下载依赖管理)都有很好的支持, 本文仅仅关注消费端, 

    https://www.nuget.org/       官网

    https://nugetmusthaves.com/   有细分领域的排名

    =======================
    nuget项目依赖定义格式
    =======================
    新版 nuget 和VS 2019 都推荐项目依赖采用 PackageReference 格式, 这种格式的依赖声明是放到 .csproj 项目文件中的, 之前是使用 packages.config 文件来保存 nuget 依赖项. PackageReference 相比 packages.config 的优点有:
    1. 统一了所有依赖声明存放文件
    在原来的方式下, solution 下各个项目之间的依赖是在 .csproj 文件中声明的, nuget 依赖是在 packages.config 中声明的. 现在推荐方式, 统统定义在 .csproj 文件中, 在项目文件中搜索 PackageReference 字样就能看到其依赖关系.
    2. 依赖项支持 float 版本写法,
    比如项目初始时候, 加入了一个 CsvHelper 11.1 , 我们可以改写版本号为 11.* , 这样在 build或 restore 项目自动会从 nuget feed下载并应用 CsvHelper 11大版下的最新版.

    启用 PackageReference 格式的方法是:
    1. 针对新项目, 在选项中, 直接设置程序包管理默认的格式为: PackageReference
    具体为: 找到NuGet 包管理器/常规页签: 设置程序包管理默认的格式为: PackageReference, 另一个可选格式为 packages.config 文件
    2. 针对基于packages.config的老项目: 在VS的资源管理器的 References 节点上, 选择快捷菜单PackageReference….即可转为 PackageReference 格式.

    =======================
    项目中新增/升级/移除nuget包
    =======================
    在VS 2019项目文件节点上, 进入 nuget 管理器就能新加/升级/移除 nuget package.


    =======================
    nuget 环境设置
    =======================
    参考 https://docs.microsoft.com/zh-cn/nuget/reference/nuget-config-file
    1. nuget 环境设置文件名为 NuGet.Config, 有两种级别的 NuGet.Config 文件:
    (1). Solution 级别的设置
    NuGet.Config 文件要和 solution 文件同目录, 注意不是 .csproj 文件的目录
    (2). 操作系统用户级的设置
    NuGet.Config 文件是在 %appdata%NuGet 目录下, 比如:
    C:UsersAdministratorAppDataRoamingNuGetNuGet.Config

    2. nuget 下载包存放位置
    默认情况下, package都是存放到 %userprofile%.nugetpackages 下, 我们可以通过OS环境变量 NUGET_PACKAGES 来设置新的package 存放路径, 也可以在 NuGet.Config 文件中指定 globalPackagesFolder 属性.

    3. 下面是一个 NuGet.Config文件示例, 包含设置多个 packageSources 仓库, 上网代理, 私仓的认证

    <config>
          <packageSources>
            <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
            <add key="myprivate" value="https://10.10.10.10/packages/" />
          </packageSources>      
        <packageRestore>
            <!-- Allow NuGet to download missing packages -->
            <add key="enabled" value="True" />
            <!-- Automatically check for missing packages during build in Visual Studio -->
            <add key="automatic" value="True" />
        </packageRestore>       
        <add key="globalPackagesFolder" value="c:packages" /> 
        <add key="http_proxy" value="http://company-squid:3128@contoso.com" />
        <add key="signatureValidationMode" value="require" />
        <packageSourceCredentials>
            <myprivate>
                <add key="Username" value="user@contoso.com" />
                <add key="Password" value="..." />
            </myprivate> 
        </packageSourceCredentials>    
    </config>
  • 相关阅读:
    pandas读写csv最简代码
    csv.read和csv.write
    交叉验证
    纪念被win10大更新搞崩的vbox
    c++中关于保留小数的小总结
    Java里的值传递与“引用传递”——一些想法
    Eclipse使用遇到的一些问题及解决方案(持续更新)
    Pray for 京阿尼——愿逝者安息,伤者早日康复
    洛谷p1208—混合牛奶【典型贪心】(关联排序小技巧)
    洛谷p1217—回文质数(默默宣传打表法)
  • 原文地址:https://www.cnblogs.com/harrychinese/p/nuget.html
Copyright © 2011-2022 走看看