当前位置: 首页 > news >正文

C#程序员的堕落从nuget开始:将自己的代码发布到nuget

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。

源码指引:github源码指引_初级代码游戏的博客-CSDN博客


        nuget是.net包管理工具,很方便。

        为什么说“程序员的堕落从nuget开始”呢?因为nuget和类似的工具把你的产品附着在云端了。尽管nuget支持手工维护本地包缓存,但是由于nuget的方便性,你会忽视对本地缓存的保存,最终走上依附于nuget服务器的邪路。

        这不只是nuget的问题,这是整个互联网时代的问题。

        几个被互联网废弃的软件开发原则:

  • 软件产品依赖的所有组件,包括特定操作系统和开发工具,安装盘都要有副本保存,以便未来能够重新构建系统
  • 已经发布的版本一个字节都不可以修改,一旦修改,必须重做所有测试
  • 依赖项升级也必须重做所有测试——所以不可以编译时自动下载组件
  • 不可以使用来历不明的组件——所以不可以编译时自动下载组件

        你以为你拥有了全世界,其实只是你变成了服务器的附庸。你,不再属于你自己。

目录

一、注册nuget

二、创建api key

三、上传包


一、注册nuget

        首先需要注册账号,账号首先必须是微软账号,然后很容易就开通nuget了。登录进去以后很简单,重点就在右上角菜单:

        或者顶部菜单项目:

 

二、创建api key

        如果用工具来提交需要api key,在右上角菜单点“API Keys”创建即可,别忘了复制key的值,只在创建时可以复制,忘了就只能删除重建了。

        但是提交包在网页直接操作就可以了,并不需要api key。

三、上传包

        上传包首先要把项目打包,在visual studio里面,项目上右键“打包”,最终输出窗口会出现“已成功创建包“目录\项目名.1.0.0.nupkg”字样,这个就是要上传的包。

        在nuget网页上点“Upload”:

        点“Browse...”按钮选择包,会自动分析包的信息,如果缺失关键信息会有提示,主要是版权和自述文件,补一下就可以了。

        最后有按钮供提交:

        提交完成的包会在右上角菜单的包管理里出现:

 

        注意,新上传的包会出现在“Unlisted Packegs”里面,因为服务器要给编制索引,稍等片刻,服务器处理完了包就会出现在“Published Packegs”里面,这时候就可以被搜索到了。


(这里是文档结束)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • PHP中如何比较两个对象
  • 紧急通告VMware vCenter高危漏洞CVE-2024-38812和CVE-2024-38813修复方案
  • RTX 4090 系列即将停产,RTX 5090 系列蓄势待发
  • 【日记】书荒了(337 字)
  • [Golang] goroutine
  • 2023年06月中国电子学会青少年软件编程(Python)等级考试试卷(二级)答案 + 解析
  • 【sgCreateCallAPIFunction】自定义小工具:敏捷开发→调用接口方法代码生成工具
  • 通过防火墙分段增强网络安全
  • Java | Leetcode Java题解之第409题最长回文串
  • 【MySQL】表的操作【有关表结构的操作】【创建、查看、删除、修改表结构】
  • 人工智能与机器学习原理精解【21】
  • SRE实例的一些结构图
  • javascript-装饰器
  • Invoke-Maldaptive:一款针对LDAP SearchFilter的安全分析工具
  • Java stream().anyMatch
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Android系统模拟器绘制实现概述
  • CentOS 7 防火墙操作
  • EventListener原理
  • Lsb图片隐写
  • npx命令介绍
  • Sass 快速入门教程
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • TypeScript实现数据结构(一)栈,队列,链表
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 使用docker-compose进行多节点部署
  • 收藏好这篇,别再只说“数据劫持”了
  • 一些css基础学习笔记
  • 一些关于Rust在2019年的思考
  • 与 ConTeXt MkIV 官方文档的接驳
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (02)vite环境变量配置
  • (笔记)M1使用hombrew安装qemu
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (九)信息融合方式简介
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (五)c52学习之旅-静态数码管
  • (译) 函数式 JS #1:简介
  • 、写入Shellcode到注册表上线
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .Net mvc总结
  • .net 流——流的类型体系简单介绍
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET微信公众号开发-2.0创建自定义菜单
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • [1] 平面(Plane)图形的生成算法