nuget cli 真是毒瘤啊,没见过这么难用的包管理工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
89ao
V2EX    .NET

nuget cli 真是毒瘤啊,没见过这么难用的包管理工具

  •  
  •   89ao 2023-06-09 17:17:49 +08:00 3611 次点击
    这是一个创建于 921 天前的主题,其中的信息可能已经有所发展或是发生改变。
    当然可能是搂住孤陋寡闻,但用了那么多包管理工具之下真的发现
    在命令行下体验最差的就是微软做的东西
    同时在这中间 nuget 客户端是最毒瘤的
    命令提供的功能有限不说,使用方法奇奇怪怪,完全不遵循 linux 规范
    就为配个源拨测用例,我跟 GPT 俩搞一下午了还各种报错
    log 里面完全无法判断出来是 server 有问题还是我本地使用有问题
    举个例子:
    我就要简单的指定仓库,下载一个依赖,然后删除它,结果安装完了之后:
    nuget delete 居然试图从上游仓库里面删除(要求认证)
    这不是反直觉的吗?


    但这个体验,真的糟心啊……

    知道吐槽也没有用,仅宣泄一下憋屈的心情。


    另有 nuget 专家可以帮指导下哈:
    1. nuget v3 是否和 v2 完全不兼容?
    2. 有没有目前可用的 v2 仓库?
    18 条回复    2023-06-19 21:30:39 +08:00
    a33291
        1
    a33291  
       2023-06-09 17:24:34 +08:00
    再加一个,最新版要求你的 source 必须是 https,我 tm 内网自建需要啥 https,还不给选项禁用
    Cloudust
        2
    Cloudust  
       2023-06-09 17:27:55 +08:00
    @a33291 #1 这个也太难受了吧,我这也是自建 http ,不过我很久没更新了...
    idealhs
        3
    idealhs  
       2023-06-09 17:28:12 +08:00
    用 GUI 吧,仅仅是开发的话 VS 和 Rider 都挺正常使用的。
    89ao
        4
    89ao  
    OP
       2023-06-09 17:41:48 +08:00
    @idealhs 我这里也是公司自建,所以需要拨测服务正常性哈
    wanmyj
        5
    wanmyj  
       2023-06-09 17:49:03 +08:00
    > 完全不遵循 linux 规范
    看到这段笑出声,估计下辈子都看不到微软会做这样的事

    nuget v3 是否和 v2 完全不兼容?
    不一定解决你的问题。我的使用经验,nuget 不同版本给我感觉共用一个仓库,不是完全不兼容,但使用中又觉得很诡异。如果某个包里只有 NetCore 的版本,那 nuget v2 是不行的,最起码较早的 v2 是无法下载的。v3 好像也无法下载一些只支持 net standard 的包<------这句存疑
    thinkershare
        6
    thinkershare  
       2023-06-09 17:53:56 +08:00
    你整个问题我都无力吐槽,NuGet 是我用过的所有包管理里面最好用了,没要之一。
    mooyo
        7
    mooyo  
       2023-06-09 17:55:08 +08:00
    我觉得 nuget 都还好,csproj 是真抽象阿。
    89ao
        8
    89ao  
    OP
       2023-06-09 18:34:58 +08:00
    @wanmyj 对的,似乎同一套仓库只能同时支持 v2 或者 v3 中的一个
    89ao
        9
    89ao  
    OP
       2023-06-09 18:35:15 +08:00
    @thinkershare 来分享一下依据或者经验
    rwecho
        10
    rwecho  
       2023-06-09 18:44:53 +08:00
    我开发 c#的竟然搞不懂你想干啥, 命令行不都是 dotnet add package xxxx 吗?

    指定仓库 应该在 项目项目下面 创建一个 Nuget.Config 里面添加源.
    如果是自建仓库, 使用 baget
    liuliuliuliu
        11
    liuliuliuliu  
    PRO
       2023-06-09 18:55:19 +08:00
    确实,不算好用,只能说是能用,没啥大问题
    forgottencoast
        12
    forgottencoast  
       2023-06-09 19:13:31 +08:00
    没用过这东西,根据这个链接:
    https://learn.microsoft.com/en-us/nuget/reference/nuget-exe-cli-reference
    它是以前.Net Framework 的产物啊,在 Linux 下难用不是正常的吗,估计开发的时候就没有考虑过在 Linux 下运行的场景。

    如 10#所言,现在早就不用这个了。
    agagega
        13
    agagega  
       2023-06-09 19:17:05 +08:00
    以前用 Visual Studio 写过 ASP.NET 的项目,功能层级的复杂先不说了,微软那些「企业级」术语加上微软式翻译真的看得人都麻了,是不是企业级的玩意都得要把简单的东西(从语言上)复杂化
    tin3w5
        14
    tin3w5  
       2023-06-09 19:22:53 +08:00 via iPhone
    你指望微软的东西能遵守 posix 标准、Linux 规范?开什么玩笑,微软如果不是因为发现 cmd 实在太烂了、又有大量来自客户侧的企业级命令行需求,他能搞 powershell ?估计把 cmd 砍了都是正常操作。
    印象中自从微软的产品设计变成印度人之后,东西就不好用了。
    thinkershare
        15
    thinkershare  
       2023-06-09 20:26:21 +08:00
    @89ao 请先吧你的需求写清楚,一上来就这对自己不了解的东西发表吐槽,我只能这么回复你了。
    微软的文档写的非常详细,虽然中文基本也是机器翻译,但该有的都有。
    自定义仓库事件非常简单的事情,半个小时搞定,想要别人给你解决方案的时候,麻烦将自己的需求搞清楚。
    https://learn.microsoft.com/zh-cn/nuget/hosting-packages/overview
    https://learn.microsoft.com/zh-cn/dotnet/core/tools/dotnet-add-package
    irytu
        16
    irytu  
       2023-06-10 01:03:46 +08:00 via Android
    确实 记得当时抱着很大期待加入微软 没几天就被这些垃圾给恶心到了 是我半年内选择离职的一大原因。。
    89ao
        17
    89ao  
    OP
       2023-06-12 15:10:24 +08:00
    @rwecho 感谢分享,baget 这个东西看起来不错,我学习一下
    hez2010
        18
    hez2010  
       2023-06-19 21:30:39 +08:00
    很简单,因为 nuget 客户端本身就是用来操作上游包仓库的客户端。
    你要是想找包管理器的话,那你需要的不是那个 nuget.exe ,而是 dotnet add package/dotnet remove package ,以及 dotnet nuget 命令。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2838 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 14:16 PVG 22:16 LAX 06:16 JFK 09:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86