精华内容
下载资源
问答
  • 程序包管理器或dotnet CLI PM> Install-Package Sharp7 或者 > dotnet add package Sharp7 您是否需要更多动力? 尝试 开始使用 支持的目标 S7 300/400 / WinAC CPU(完全支持) S7 1200/1500 CPU CP(通讯...
  • 如何使用NuGet程序包?》 概述 大家好,我是专注.NET开发的码友网创建者Rector。 在.NET应用程序编程开发中,开发者通常使用类库来管理、维护属于同一分类的程序代码,以便代码的重用。一般情况下,处于同一类库的...

    本文首发于码友网《NuGet是什么?为什么.NET项目中会有NuGet?如何使用NuGet程序包?》

    概述

    大家好,我是专注.NET开发的码友网创建者Rector

    在.NET应用程序编程开发中,开发者通常使用类库来管理、维护属于同一分类的程序代码,以便代码的重用。一般情况下,处于同一类库的所有类都位于同一程序集。

    这些类库被编译器编译后会生成扩展名为.dll的动态链接库文件,你可以在其它项目中通过引用的方式导入这些.dll程序集并使用其中被封装的类及成员。

    但随着项目越来越大、越来越多,使用手动引用.dll动态链接库的方式让程序包管理和维护变得非常困难。在这种情况下,NuGet程序包管理工具便应运而生。

    NuGet程序包就好比前端开发中的npm包,Java开发中的Maven或者Gradle,它们都是管理自己语言领域的程序依赖包的工具。负责控制程序包版本,维护包与包之间的依赖,有了包管理工具,你可以快速地安装包,还原包等。

    在正式接触NuGet程序包工具前,先来一步一步回顾.NET项目中程序包引入的进化历。

    引入程序集的方式

    引入程序集的方式有多种,如:

    • 程序集在同一个解决方案,直接引用项目
    • 程序集在本地磁盘,浏览.dll文件引入
    • NuGet程序包管理工具安装

    1.引用项目方式

    假如当前有一个名为NugetDemo.Payment的类库项目和一个名为ConsoleApp的控制台应用程序,现需要在ConsoleApp项目中通过引用项目的方式引入NugetDemo.Payment,方法如下:

    1.右键单击依赖项,点击添加项目引用,如图:

    2.在弹出的引用管理器窗口中选中NugetDemo.Payment,点击确定,如图:

    3.Visual Studio将把选中的项目添加到当前项目的依赖项->项目列表,如图:

    2.浏览文件方式

    还是在ConsoleApp项目中,假如有另外一个支付宝的程序集,如图:

    1.还是按归引用项目的方式,右键单击依赖项,点击添加项目引用

    2.在弹出的引用管理器窗口选中浏览,如图:

    3.再点击右下角的浏览按钮,在文件资源管理器中找到刚才准备的Ali.Alipay.dll文件,如图:

    4.选择后点击右下角的添加按钮,将自动回到如下界面:

    5.选中刚才浏览的Ali.Alipay.dll,最后点击右下角的确定按钮,Visual Studio将会把这个.dll文件添加到当前项目的依赖项->程序集列表中,如图:

    无可厚非,以上的两种引用程序集的方式在结果上是没有问题的。但这种方式只适合个人项目,当你的团队成员或者团队项目达到一定量级之后,程序集的管理、维护、版本控制等问题会让你头疼。

    到最后,你可能不知道当前引用的程序集是哪个版本?在哪里可以找到正确的程序集版本?它们之间的依赖关系是怎么样的?如果共享程序集?

    有了NuGet程序包之后,这些问题就迎刃而解。

    NuGet程序包

    NuGet程序包是微软为.NET(包括.NET Core)平台提供的程序集共享包。

    简单地说,NuGet包是一个扩展名为.nupkg的ZIP文件,其中包含了已编译代码(.dll)与该代码相关的其他文件,以及包版本号等信息的描述信息。

    开发人员可以创建代码共享的程序包并将其发布到公共或私有主机。包使用者从合适的主机获得这些包,将它们添加到他们的项目中,然后在他们的项目代码中调用包的功能。然后NuGet自己处理所有中间细节(包括安装、卸载、依赖关系维护,版本控制等)。

    微软官方为公共的.NET共享程序包提供专门的公有托管服务,地址为: https://www.nuget.org/

    目前有超过25万的程序包被分享在这里,如图:

    NuGet除了支持公共的nuget.org主机外还支持私有主机,所以你可以搭建个人或者公司内部的NuGet私有服务器,以达到内部分享程序包的目的。

    NuGet程序包的安装和卸载

    管理NuGet程序包的方式有多种,其中最常用的分别为:一、通过NuGet包管理器;二、通过命令行管理。其中NuGet包管理器是Visual Studio或者Rider这样的集成开发环境才具备的客户端管理工具。

    下面以Visual Studio 2022 预览版(17.0.0 Preview 3.1)为例演示。

    NuGet包管理器

    安装NuGet

    假如当前有一个基于.NET 5的控制台应用程序,结构如下:

    现需要在这个控制台中安装Newtonsoft.Json以便进行json序列化和反序列化操作。那么,我们可以通过右键依赖项 -> 管理NuGet程序包来打开NuGet包管理器,如下图:

    然后选择浏览选项卡,并在搜索框中键入关键词,在搜索结果中选中需要安装的程序包,最后点击右侧的安装按钮,如下:

    在弹出的对话框中,点击确定按钮:

    Visual Studio将自动下载选中的程序包及其依赖包,并将其添加到当前项目的依赖项中,如下图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vfHTTcUL-1639403879354)(https://statics.codedefault.com/uploads/u/2021/09/ijt33qe35p.png)]

    现在,可以在这个ConsoleApp1项目中调用Newtonsoft.Json组件所有可访问的功能了,以下示例演示了利用Newtonsoft.Json将一个json字符串反序列化成实体对象,代码如下:

    using Newtonsoft.Json;
    
    class Program
    {
        static void Main(string[] args)
        {
            // 模拟一个JSON字符串
            var json = "{\"id\":1,\"name\":\"Rector\",\"age\":18}";
            // 调用JsonConvert.DeserializeObject<T>()泛型方法反序列化
            var person = JsonConvert.DeserializeObject<Person>(json);
            Console.WriteLine(person.ToString());
            Console.ReadKey();
        }
    }
    /// <summary>
    /// 定义一个与JSON字符串字段匹配的实体类
    /// </summary>
    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public short Age { get; set; }
        /// <summary>
        /// 重写ToString()方法
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return $"id:{Id},name:{Name},age:{Age}";
        }
    }
    

    运行结果如下图:

    NuGet包版本管理

    NuGet包有版本之分,不同的版本以版本号作为标识,比如上面安装的Newtonsoft.Json程序包,安装的时候选择了当前的最新版本(13.0.1),如图:

    这个下拉列表列出了Newtonsoft.Json程序包所有可用的版本号,通过选择不同版本号即可安装不同版本的Newtonsoft.Json程序包,也可以通过这个版本下拉列表实现NuGet程序包版本的升/降级

    比如,当前我们已经安装了版本13.0.1,那么,选择任意一个比它版本号小的即为降级,比如这里选择降级为12.0.3,点击更新按钮即可完成降级。

    同理,选择任意一个比当前版本号大的版本,即可完成升级版本的操作。

    问:NuGet包为什么会有不同的版号呢?

    答:NuGet的版本号作为不同版本的标识。一个NuGet包的功能在不断地完善和扩展,每次对NuGet包进行迭代(可能是修复bug,也可能是新增功能),都会为其指定不同的版本号(通常这个版本号是向上累加的),不同版本之间相互独立、互不影响。

    NuGet包卸载

    有安装就有卸载,假如某个项目不再需要某个NuGet程序包,则可以通过NuGet包管理器中的卸载按钮来一键卸载掉指定的NuGet程序包(其依赖的程序包也会被一并卸载),如图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dAO22fZj-1639403879363)(https://statics.codedefault.com/uploads/u/2021/09/18bat636f6.png)]

    卸载Newtonsoft.Json包后,上面演示的反序列化示例代码在编译报错了,如图:

    NuGet命令行

    除了NuGet包管理器外,还可使用NuGet命令行来安装。

    首先,打开NuGet的官网: https://www.nuget.org/ ,在搜索框中键入要查找的NuGet包关键字(这里演示Newtonsoft),点击搜索按钮,如图:

    在搜索结果列表中点击符合要求的程序包(Newtonsoft.Json),如图:

    进入到Newtonsoft.Json的详情页面,此页面展示了程序包的详细信息,如:命令行、依赖、被其他项目使用列表,历史版本列表,基本信息等等,如图:

    程序包管理器控制台命令

    安装NuGet包

    首先,演示程序包管理器控制台,复制其中的程序包管理器控制台命令:

    Install-Package Newtonsoft.Json -Version 13.0.1
    

    在Visual Studio中,打开程序包管理器控制台,如图:

    将命令粘贴在程序包管理器控制台中,并将默认项目设置为当前项目(如果一个解决方案中有多个项目时,需仔细检查此下拉框选中的项目),按回车键执行命令。

    命令执行结果如图:

    程序包管理器控制台命令方式安装NuGet程序包成功。

    更新NuGet包

    程序包管理器控制台中,同样可以更新NuGet包。

    你可以获取检查当前项目已安装包是否有新版本,命令如下:

    Get-Package -updates
    

    更新指定包到指定版本,命令如下:

    Update-Package Newtonsoft.Json -Version 13.0.1
    

    更新项目的指定包到指定版本,命令如下:

    Update-Package Newtonsoft.Json -Version 13.0.1 -ProjectName ConsoleApp1
    

    更新当前解决方案的所有程序包到最新版本,命令如下:

    Update-Package
    

    卸载NuGet包

    程序包管理器控制台中,还可以卸载NuGet包。

    卸载默认项目的指定程序包,命令如下:

    Uninstall-Package Newtonsoft.Json
    

    卸载默认项目的指定程序包,同时卸载未使用的依赖包,命令如下:

    Uninstall-Package Newtonsoft.Json -RemoveDependencies
    

    强制卸载默认项目的指定程序包(即使其他程序包依赖于它),命令如下:

    Uninstall-Package Newtonsoft.Json -Force
    

    .NET CLI管理NuGet包

    要使用.NET CLI工具,需要安装.NET Core SDK。如果已安装Visual Studio 2017及以上版本,则.NET CLI工具会自动安装。

    在使用命令行管理NuGet包时,请在命令行中定位到项目所在根目录。

    安装Nuget包

    使用.NET CLI安装Newtonsoft.Json包的命令如下:

    dotnet add package Newtonsoft.Json --version 13.0.1
    

    命令执行如下:

    卸载Nuget包

    卸载Newtonsoft.Json包的命令如下:

    dotnet remove package Newtonsoft.Json
    

    下一篇介绍《1分钟极速搭建基于BaGet的轻量级私有Nuget程序包服务器》

    如有什么问题,欢迎评论区留言反馈。

    如果你觉得本文有价值,请来个三连(点赞,收藏,评论)吧,谢谢。

    展开全文
  • 我是在参考文章:【VS】NuGet 修改包路径,重新配置nuget程序包路径的时候报了错。 解决方法是:打开CSPROJ文件。将:两处“..\packages\”改成新的本地packages路径(我的是..\..\CommonPackages)即可。 1 ...

    我是在参考文章:【VS】NuGet 修改包路径 ,重新配置nuget程序包路径的时候报了错。

    解决方法是:打开CSPROJ文件。将:两处“..\packages\”改成新的本地packages路径(我的是..\..\CommonPackages)即可。

     

    1

    2

    3

    4

    5

    6

    7

     <Import Project="..\packages\System.Data.SQLite.Core.1.0.109.2\build\net46\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.109.2\build\net46\System.Data.SQLite.Core.targets')" />

      <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

        <PropertyGroup>

          <ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>

        </PropertyGroup>

        <Error Condition="!Exists('..\packages\System.Data.SQLite.Core.1.0.109.2\build\net46\System.Data.SQLite.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\System.Data.SQLite.Core.1.0.109.2\build\net46\System.Data.SQLite.Core.targets'))" />

      </Target>

      

    展开全文
  • 搭建Nuget服务端在Microsoft Visual Studio的空ASP.NET Web应用程序项目安装NuGet...项目引用处右击管理NuGet程序包,搜索并安装NuGet.Server: 1.4.项目发布选自定义配置文件名称: 1.5.下一步,用文件方式发布: 2...

    搭建Nuget服务端

    在Microsoft Visual Studio的空ASP.NET Web应用程序项目安装NuGet.Server,并以方式文件发布项目。

    1.1.Vs中新建ASP.NET Web应用程序项目:

    b592f5a5ff7f1168d37ea77b34cf232c.png

    1.2.选择空模板即可:

    039cdfb802f3b1996f8ebcc899843844.png

    1.3.项目引用处右击管理NuGet程序包,搜索并安装NuGet.Server:

    08f9ed2aeeb6c8cc1c1a6ebbef239b39.png

    1.4.项目发布选自定义配置文件名称:

    f16f266055f7c369d2063eb5fc3d9e6e.png

    1.5.下一步,用文件方式发布:

    be36a386e7dccdae9fefd1aa2cd796f8.png

    2.在IIS中部署上一步发布的项目。

    2.1.利用IIS部署项目:

    04ac7c1514465821776770ec757e10c5.png

    发布到Nuget服务器

    生成nuspec文件

    nuget spec dw_coord_base.dll

    制作nupkg文件

    访问nuget官网https://www.nuget.org/downloads,下载nuget.exe打包工具:

    b0aa4d029071607143a4417268a3c898.png
    5a1f0abf77473d1a49c331f8700bac34.png

    8.将nuget.exe放至,任意要打包上传到Nuget服务器的Vs项目文件,同目录中,利用cmd控制台执行nuget pack命令生成*.nupkg文件,如CoordConvertEsriDll.1.0.0.nupkg:

    上传nupkg文件

    • 方法一,直接拷贝文件
    • 将生成*.nupkg文件,如CoordConvertEsriDll.1.0.0.nupkg,放到IIS网站根目录的Packages目录下:如D:LyqprojectCoordinateConvertNuget设置服务源到我们自己的服务器PublishNuget.ServerDemoPackages:
    e5f9c0176441fa03119dd26146ae0569.png
    • 方法二,通过命令上传
    • nuget push Package.1.0.1.nupkg deuwise -Source http://192.168.1.21:88/nuget

    使用Nuget管理包

    在使用自己nuget服务器引用资源的项目中,添加程序包源后,浏览安装即在vs中使用自己nuget服务器资源了:

    nuget地址:http://192.168.1.21:88/nuget

    1c2454ee0dbc94be9bda17f68efb53e9.png
    展开全文
  • 解决VS编译生成时,一直卡在NuGet程序包管理器“正在还原文件” 一直停留在“正在还原nuget程序包” 相关问题 《解决VS编译时,卡起,进行nuget还原的问题(“NuGet Command Line已停止工作”)》...

    这是我写在我的博客上的,转过来到csdn。

    解决VS编译生成时,一直卡在NuGet程序包管理器“正在还原文件” 一直停留在“正在还原nuget程序包”

    相关问题 《解决VS编译时,卡起,进行nuget还原的问题(“NuGet Command Line已停止工作”)》  http://ant73.com/106.html

    有时候,改别人的项目,总会提示这个,非常烦,慢得很。

    原文来自:http://ant73.com/280.html

    后来,找到办法解决,如下设置即可:

    取消这里的勾选。

    原文来自:http://ant73.com/280.html

     

    这个问题,还会涉及前面提到的相关问题。有兴趣的,可以看看那个问题的解决办法。

     

    展开全文
  • 解决VS2013 NuGet程序包 一直显示加载中,无法显示问题 最近用vs2013安装程序包,忽然发现用不了,显示一直是加载中,但是vs2017可以。同样的源。尝试更改程序包源,还是不行。 后来发现问题nuget官方网站已经不...
  • 默认是可以编译运行的。 剪切目录后出现这个问题,后来发现是NuGet包的问题,在之前目录下找到packges拷贝至工程同级目录即可。 顺便也学习各种工具 NuGet Bower WebPack........
  • 将项目中的packages.config 中引用移除。 1、使用nuget管理器,进行安装 2、下载对应dll,手动引入项目 转载于:https://www.cnblogs.com/chenjfblog/p/7512535.html
  • 还原 NuGet 程序包时出错: 已添加了具有相同键的项。 ``` 已用时间: 00:00:05.7981533 ========== 已完成 ========== 还原 NuGet 程序包时出错: 已添加了具有相同键的项。 ```
  • 报错日志如下: 报错日志中的链接复制出来,这是解决问题的关键 链接如下:这是官方的文档 照着做就行了 ...以下是文档的总结的简便操作 ... “NuGet 程序包管理器” 选项中如下操作 最重要的一步,重启visual s...
  • 下一个 用于访问Nextion Smart Display的NuGet程序包
  • vs2019使用NuGet装包或还原包时,会提示:还原 NuGet 程序包时出错: 已添加了具有相同键的项。, 这个有谁知道是怎么回事 怎么解决吗? ![图片说明]...
  • VS2017中缺少NuGet 程序包,没有NuGet

    万次阅读 2018-09-26 18:39:18
    今天装软件的时候,发现我VS2017缺少了NuGet程序包,然后找网上搜索,并没有找到解决步骤,后来去了官网才知道VS2017没有对应网址下载了,已经内嵌在VS2017安装命令台里了。 官网在这:...
  • 转载 ...1.打开项目.csproj 2.删除下面的内容 3、右键项目–>管理NuGet程序包(N) 找到Microsoft.CodeDom.Providers.DotNetCompilerPlatform和Microsoft.Net.Compilers卸载后重装 ...
  • 由Panoramic Data Limited创建的LogicMonitor REST API nuget程序包。 如果您要开发某些LogicMonitor软件,请通过以下找到我们: ://www.panoramicdata.com/! 首先,请在此处观看视频: 一个简单的例子: using...
  • 打开菜单栏>>工具>>选项>>NuGet程序包管理器>>选择程序包源 勾选上nuget.org,即可使用联机的Nuget包 转载于:https://www.cnblogs.com/GoCircle/p/6425426.html...
  • 当使用诸如Visual Studio之类的IDE时,通过使用NuGet程序包管理器很容易找出您的项目使用的NuGet程序包的较新版本。 但是,.NET Core命令行工具没有为您提供内置的方法来报告过时的NuGet软件包。 dotnet-outdated是...
  • 发布Nuget程序包

    2017-05-29 09:21:00
    那我们如何将自己的程序包发布到nuget上呢?今天我们就来了解一下整个流程。 创建类库 创建自己的类库,创建后的文件如下图所示 创建nuspec文件 在类库目录下运行nuget spec命令,生成.nuspec文件。然后修.....
  • 使用 NuGet 程序包还原可下载这些程序包。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 ..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compi...
  • 之前一直使用vs2012开发,管理nuget程序包没有出现过什么问题。因为开发需要,需要使用vs2015,安装vs2015后再使用vs2012时,发现管理nuget程序包中搜索不到任何资源,晕死。 想起来之前vs2010中也安装了nuget管理...
  • 一个简便的方法就是取消下载缺少的程序包。 步骤如下: 1,工具——选项 2,包管理器——常规——程序包还原,取消勾选。
  • 找不到引用?! 找“NuGet程序包管理器”

    万次阅读 热门讨论 2017-11-16 10:20:58
    打开菜单栏的“工具”→★→“NuGet包管理器”→★→“程序包管理器控制台”   2.如下图所示,在控制台 PM> 后输入 Install-Package Microsoft.AspNet.Web.Optimization ,按下Enter键即可。...
  • 还原 NuGet 程序包时出错: 已添加了具有相同键的项 状况 在Ide中输出中查看错误信息 输出来源:程序包管理 已用时间: 00:00:04.1449549 ========== 已完成 ========== 已用时间: 00:00:32.9024884 ========== 已...
  • 【Visual Studio】NuGet 程序包还原失败

    千次阅读 2019-10-25 16:11:11
    在A电脑SVN上传代码后,在B电脑下载,打开工程并编译报如下错误,电脑A与电脑B的Visual Studio 都是2013但是子版本不一致,且在使用过程中具体升级的也不一致。 问题一、 描述 基础连接已经关闭: 未能为SSL/...
  • R5T.Identos “ Microsoft.AspNetCore.Identity” NuGet程序包的程序包版本选择器库。
  • VS2017还原nuget程序包出错

    万次阅读 2017-08-30 21:30:06
    vs2017 nuget包还原出错,基础类也加载不了,.net standard的没还原,从而导致连System命名空间都找不到的错误。 www.wobiji.net 我笔记 在此选择上即可 奉劝一句,解铃还须系铃人,哪里的问题从哪入手解决...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,623
精华内容 9,849
关键字:

nuget程序包

友情链接: hilbert_transform.zip