搭建私有Nuget服务器(.Net Core框架)

概述

在私有服务器上搭建Nuget服务,本地打包推送nuget包,实现对.net core项目自定义包的管理。

NuGet是用于微软.NET(包括 .NET Core)开发平台的软件包管理器。NuGet能够令你在项目中添加、移除和更新引用的工作变得更加快捷方便。

我们通过“工具-Nuget包管理器-管理解决方案的Nuget程序包”可以看到下图的页面,可以从网上搜索我们需要的nuget包,也可以查看项目已安装的包和对已安装的包进行更新。
在这里插入图片描述
正常情况下我们都是从默认地址nuget.org搜索我们需要的包,并且可以将我们自己创建的包上传到该地址使所有人可见。

如果我们需要对自己的项目进行管理,并且不希望所有人都能看到这些包的内容,就可以创建自己的nuget包管理服务器。

搭建nuget服务

搭建nuget服务有很多种方式,网站有很多教程,比如自己创建MVC项目,安装nuget.server包,就可以创建服务。但是我自己尝试了并没有成功,可能是由于.net framework 和.net core的区别,这种方法可能只适用于.net framework,具体原因没有过多尝试。

因此找到了基于ASP.NET Core的一个开源项目Baget,成功实现了功能。

Baget服务

开源项目github地址:https://github.com/loic-sharma/BaGet

release包下载地址:https://github.com/loic-sharma/BaGet/releases/download/v0.3.0-preview4/BaGet.zip

下载完成后解压,得到下面的文件。
在这里插入图片描述
修改appsetting.json配置文件文件
在这里插入图片描述
上图中是比较重要的几个参数,

  • “ApiKey”是密钥,每次推送或者删除Nuget包时都需要输入这个代码;
  • “Urls”是路由地址和端口号,原来是5000,需要改为8020;
  • “PackageDeletionBehavior"是删除方式,默认“Unlist”,删除时不会将源文件删除,只是在前端显示时看不到了,这会导致再次推送同一个包时报错,所以这改为"harddelete”,将原来的包彻底删除。
  • "AllowPackageOverwrites"是是否允许覆盖,默认“false”,不允许覆盖,改为true之后推送新的包会将原来的包覆盖掉。

开启nuget服务
在该路径下打开命令行,输入 dotnet BaGet.dll
在这里插入图片描述
出现上图的提示,证明服务打开成功。打开浏览器,输入http://localhost:8020/,会出现下面的页面,显示本地的nuget包,以及如何上传包。
在这里插入图片描述
在命令行工具按Ctrl+C关闭服务。

这是在本地打开baget服务的方案,下面说明在服务器部署baget服务,并在本地向服务器推送包。

服务器搭建后台

在服务器搭建baget后台服务的步骤和普通发布的项目在服务器运行一样,通过IIS管理器新建网站,选择release包的路径,设置端口号,启动应用程序运行池,在防火墙的入站规则将这个端口号开放,这样服务器上可外部访问的服务就搭建好了,详细步骤可以参考另一篇文章

https://blog.csdn.net/AI_eye/article/details/113128491本地部署IIS服务及MQTT服务

搭建好服务之后,在本地输入后台地址可以打开包管理页面。

管理nuget包

服务搭建好之后,就要将自己的包推送到服务器上。

设置私有nuget服务器地址

在VS软件中,选择“工具-Nuget包管理器-程序包管理器设置”,选择程序包源,
在这里插入图片描述
第一个nuget.org就是默认我们通过网络获取程序包的地址,第二个是我新添加的本地的nuget包地址,方法是点击 “+”,新增源。在名称中输入我们为这个源起的名字,源中输入路由地址,这个地址可以在服务的网页上看到,如果是添加服务器源的话,就将IP改为对应的地址就好。
在这里插入图片描述

命令行

现在一切准备就绪,只需要把我们要推送的包推到服务器地址就行。

打包:在我们要打包的项目右键-打包,可以在输出框中看到“已成功创建包…”的字样,打开这个路径,就可以看到我们新创建的 xxx.nupkg文件,在该路径下打开命令行工具。

推送包:命令行输入dotnet nuget push -s http://localhost:8020/v3/index.json xxx.nupkg,就可以把包推送到我们本地的服务上。
在这里插入图片描述
推送成功。可以在页面上进行查看。
在这里插入图片描述
同时在本地Baget目录下的packages文件夹中可以看到这个包。

删除包:命令行输入dotnet nuget delete -s http://localhost:8020/v3/index.json xxx 1.0.0,就可以把服务器上的包删除掉,注意这里只写“包名 版本号”就行,“.nupkg”的后缀也不用加。
在这里插入图片描述
删除成功。

  • 需要注意这里的命令是在配置文件中没有设置密钥的情况下,如果设置了就需要在命令行中加入密钥才可以执行操作。

设置包的信息:在项目右键属性,选择打包,在里面可以设置版本号,作者等信息。

下载自己推送的包

包已经被推送到服务器上了,下面就是当我们需要的时候下载它。

在“工具-Nuget包管理器-管理解决方案的Nuget程序包”中最右边“程序包源”选择我们自己创建的"MyNuGet",就可以在左边看到我们已经推送的包,点击包在右侧会出现包的信息,选择版本,进行下载。

关于包的依赖关系,如果A包依赖B包,我们将两个包都已经推送到服务器,那么在我们下载A包时,会自动也下载B包。如果服务器上只有A包,那么在下载时就会报错,找不到B包。

关于包的加密,为了保障包的安全,防止下载 后对包进行反编译,需要进行一些保护,但目前还没有找到比较好的方式,待添加。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL性能优化是提升数据库查询和操作效率的关键步骤。以下是一些常见的MySQL性能优化技巧: 1. 使用合适的索引:在经常用于查询的列上创建索引,可以大大提高查询性能。避免创建过多的索引,因为过多的索引可能会导致性能下降。 2. 优化查询语句:编写高效的查询语句是提升性能的关键。避免全表扫描,尽量使用索引来加速查询。使用EXPLAIN命令来分析查询计划,检查是否存在慢查询。 3. 适当分区:对于大型表,可以根据数据的特点将其分成多个分区,以提高查询和维护性能。 4. 调整缓冲区大小:适当调整MySQL的缓冲区大小,如innodb_buffer_pool_size和key_buffer_size,以提高读写性能。 5. 合理配置服务器参数:调整MySQL服务器的参数,如max_connections、innodb_buffer_pool_instances等,以适应实际需求并提高性能。 6. 避免过度规范化:过度规范化可能导致频繁的表连接操作,降低性能。根据实际情况进行适当的冗余设计,以减少表连接操作。 7. 使用批量插入和更新:使用批量插入和更新语句,如INSERT INTO ... VALUES(...), (...), ...,可以减少客户端和服务器之间的通信次数,提高性能。 8. 定期维护和优化表:定期进行表优化、碎片整理、统计信息更新等数据库维护操作,以提高性能。 这些是一些常见的MySQL性能优化技巧,根据具体场景和需求,还可以进行其他优化措施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值