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

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


想了下,还是因为开发是直接移植 powershell 的原因吧
但这个体验,真的糟心啊……

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


另有 nuget 专家可以帮指导下哈:
1. nuget v3 是否和 v2 完全不兼容?
2. 有没有目前可用的 v2 仓库?
2688 次点击
所在节点    .NET
18 条回复
a33291
326 天前
再加一个,最新版要求你的 source 必须是 https,我 tm 内网自建需要啥 https,还不给选项禁用
Cloudust
326 天前
@a33291 #1 这个也太难受了吧,我这也是自建 http ,不过我很久没更新了...
idealhs
326 天前
用 GUI 吧,仅仅是开发的话 VS 和 Rider 都挺正常使用的。
89ao
326 天前
@idealhs 我这里也是公司自建,所以需要拨测服务正常性哈
wanmyj
326 天前
> 完全不遵循 linux 规范
看到这段笑出声,估计下辈子都看不到微软会做这样的事

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

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

如 10#所言,现在早就不用这个了。
agagega
326 天前
以前用 Visual Studio 写过 ASP.NET 的项目,功能层级的复杂先不说了,微软那些「企业级」术语加上微软式翻译真的看得人都麻了,是不是企业级的玩意都得要把简单的东西(从语言上)复杂化
tin3w5
326 天前
你指望微软的东西能遵守 posix 标准、Linux 规范?开什么玩笑,微软如果不是因为发现 cmd 实在太烂了、又有大量来自客户侧的企业级命令行需求,他能搞 powershell ?估计把 cmd 砍了都是正常操作。
印象中自从微软的产品设计变成印度人之后,东西就不好用了。
thinkershare
326 天前
@89ao 请先吧你的需求写清楚,一上来就这对自己不了解的东西发表吐槽,我只能这么回复你了。
微软的文档写的非常详细,虽然中文基本也是机器翻译,但该有的都有。
自定义仓库事件非常简单的事情,半个小时搞定,想要别人给你解决方案的时候,麻烦将自己的需求搞清楚。
https://learn.microsoft.com/zh-cn/nuget/hosting-packages/overview
https://learn.microsoft.com/zh-cn/dotnet/core/tools/dotnet-add-package
irytu
326 天前
确实 记得当时抱着很大期待加入微软 没几天就被这些垃圾给恶心到了 是我半年内选择离职的一大原因。。
89ao
324 天前
@rwecho 感谢分享,baget 这个东西看起来不错,我学习一下
hez2010
316 天前
很简单,因为 nuget 客户端本身就是用来操作上游包仓库的客户端。
你要是想找包管理器的话,那你需要的不是那个 nuget.exe ,而是 dotnet add package/dotnet remove package ,以及 dotnet nuget 命令。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/947377

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX