- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
。
很多公司中架构师会搭建一个统一的项目基础架构模板,然后全部新项目都会拿这个基础架构来开发新的项目,那架构中就会有很多的中间件,比喻公司内部的封装好的Redis中间件,访问数据库的中间件,MQ中间件,小程序中间件等等.
现在很多项目都用这个模板开发了,然后其中一个中间件有问题了或要加功能,那么全部项目都要把这个中间件修改一遍。可能不同项目在不同的组不同的负责人,通知起来也麻烦。这时候就可以把这些中间件做成一个NuGet包了,然后全部项目都可以通过NuGet包安装,有更新就更新NuGet包,各个项目更新NuGet包就行了。但这些NuGet包不能上传到公开的NuGet服务器上,因为这些NugGet包只能公司内部用的,为了安全性考虑,就需要搭建自己的私有NuGet服务了.
。
Nexus:支持NuGet,有点重.
MyGet:Nuget云服务,不适合企业内私有部署.
BaGet:简单易用,但还没有实现身份认证,上传的包谁都能Down下来,界面也不需要登录就能访问,因为安全原因只能放弃.
ProGet:商业软件,支持nuget、npm、docker等,但它是.NET生态应用,而且还提供了免费版本,身份认证、权限方面控的很好,功能也多.
这里各种对比下选用ProGet 用Docker方式搭建一个内部的NuGet服务器.
创建网络 。
这里是创建一个和SQL Server共同的网络,如果已经装有SQL Server了,则不需要这步 。
docker network create inedo
。
。
。
创建一个SQL Server 。
如果有SQLServer数据库,跳过这一步。文档里只说了需要SQL Server,是否兼容其它数据库还没尝试,旧版本的时候是可以用PgSQL的.
# docker 部署免费版本sqlserver docker run --name inedo- sql \ -v /etc/localtime:/etc/ localtime:ro \ -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD= sa123456' \ -e 'MSSQL_PID=Express' --net=inedo --restart=unless- stopped \ -d mcr.microsoft.com/mssql/server:2019-latest
-v /etc/localtime:/etc/
localtime:ro:让容器用本机的日期
。
创建一个名叫ProGet的数据库,为了避免问题,请确保将其排序规则指定为SQL_Latin1_General_CP1_CI_as 。
# sqlserver 创建一个数据库ProGet docker exec -it inedo-sql /opt/mssql-tools/bin/ sqlcmd \ -S localhost -U SA - P 'sa123456' \ -Q 'CREATE DATABASE [ProGet] COLLATE SQL_Latin1_General_CP1_CI_AS'
。
启动ProGet容器 。
先创建一个文件夹挂载上传的包,这里创建在 。
# 创建目录挂载上传的包 mkdir -p /home/proget/packages
。
启动ProGet容器 。
# 启动ProGet容器 docker run -d --name=inedo --restart=unless- stopped \ -v /etc/localtime:/etc/ localtime:ro \ -v /home/proget/packages:/var/proget/packages -p 8180:80 --net= inedo \ -e SQL_CONNECTION_STRING='Data Source=inedo-sql; Initial Catalog=ProGet; User ID=sa; Password= sa123456' \ proget.inedo.com /productimages/inedo/proget:latest
SQL_CONNECTION_STRING:SQL Server数据库连接字符串
。
。
这时候打开ip:8180端口,就能成功访问NuGet服务器界面了.
设置ProGet包括创建源,设置用户,设置用户组,设置功能权限.
上面部署好后这里还需要一个license key 。
。
。
。
。
。
这时ProGet也会帮把 License Key信息保存到部署的站点里面了,不需要再把key填一次了.
。
然后登录 。
。
。
。
。
。
修改完密码设置权限 。
。
。
。
创建api key 。
。
设置权限 。
。
。
。
修改完后,想查看NuGet服务器上的包就需要登录了.
创建源 。
要上传Nuget包,需要创建一个源,就是Nuget包的源,ProGet能够创建多个源,分别存不同的包 。
。
选源的种类为NuGet 。
。
。
。
。
visual studio 建一个类库,这里为了演示只写一个帮助类.
。
右键属性填写包的信息 。
。
项目右键,加包.
。
打包成功后会在bin/debug下生成一个nuget包 。
。
把NuGet包推送到NuGet服务的源上 。
# nuget包推送命令 dotnet nuget push wxl.tool.1.0.0.nupkg --api-key c39bf1f00893dc07123508d281305e9735xxxxxx --source http://1.15.63.120:8180/nuget/mynuget/v3/index.json
--api-key:上面创建的用于推送的apikey 。
--source :上面创建的源feed 。
推送完成就可以在NuGet服务器上在到这个包了,这里的时间比服务器少了一个时区8小时,是因为容器时区问题,在启动Docker时加上-v /etc/localtime:/etc/localtime:ro即可解决,前面的启动命令已经加上了.
。
visual studio 另起一个项目,然后右键打开Nuget管理,把NugGet的源添加进去 。
。
。
。
输入账号信息后就能安装啦。上面3.2的方式能通过vs来添加源和NuGet包了,那有什么问题呢?
1、每个开发人员都要在自己的vs添加一遍这个NuGet源.
2、(重点)发布到服务器之后,服务器识别不到NuGet源,需要在服务器设置一下NuGet源,如果服务器很多的情况,添加修改起来会比较麻烦.
这时就可以用NuGet.config的方式来添加源了.
在项目根目录添加NuGet.config文件,内容为 。
。
。
。
。
这样打开项目后,项目会自动从nuget.config加载nuget的源,就不需要从vs添加了。发布的时候项目也能从nuget.config还原所需的NuGet包,就不需要每个服务器设置NuGet源了.
到这里Nuget私有服务使用就完成了! 。
。
NuGet发布包命令地址:https://learn.microsoft.com/zh-cn/nuget/nuget-org/publish-a-package?source=recommendations 。
NuGet.confg微软官方文档地址:https://learn.microsoft.com/zh-cn/nuget/reference/nuget-config-file?cid=kerryherger 。
ProGet官网地址:https://proget.inedo.com/ 。
最后此篇关于NuGet私有服务器ProGetDocker搭建和公司中实战用法的文章就讲到这里了,如果你想了解更多关于NuGet私有服务器ProGetDocker搭建和公司中实战用法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我已经在Visual Studio中创建了新的解决方案,启用了nuget包还原,并进入了解决方案根.nuget文件夹,该文件夹包含使包还原正常工作所需的以下文件:NuGet.exe,NuGet.con
自 Nuget 1.5 以来,我的团队一直在使用“启用包还原”选项,以使包不受我们的源代码控制。当 Nuget 1.6 发布时,我们注意到一个问题,即它没有拉取软件包,并跟踪它到 .nuget 文件夹
我维护了一些小的 Nuget 包。 我在 git 存储库中有一个 Nuget README 文件,.nupkg 文件由 VS 根据“Package”配置自动构建,存储在 .csproj 文件。 每当我
我们是一个小型开发团队,我们希望开始使用我们的库作为 NuGet 包。现在我已经看到我们可以创建 NuGet 提要或 NuGet 服务器或 NuGet 画廊。 现在我们不确定有什么区别,对于我们的小团
我正在编写一个脚本,它将自动打包 Nuget 文件并将其发布到我的私有(private)存储库(文件共享)和私有(private)符号服务器(在 localhost 上)。 当我运行 nuget pa
我有一个解决方案,我想从两个项目中创建一个 NuGet 包。 如果它只是一个项目,我会使用 .csproj 文件来规范 NuGet 打包器,但由于我希望两个不同的项目进入完成的包,我不能这样做。 我创
我正在做一个需要处理 Excel 文件的项目。我为这项工作找到了一个名为 Aspose.cells 的库。它不是一个免费的图书馆,我们应该从它的网站购买它的许可证,以便在我们的项目中使用它。但是,我发
我已经使用 Nuget 安装程序创建了一个 TeamCity 构建步骤,但是当我运行这些步骤时出现错误: Updating sources: server side checkout [15:35:4
是否有任何指南或建议来管理不在 nuget 上的库以及在 nuget 上的包。 其中大多数可能是 3rd 方库,除非我们专门安装它们,否则它们可能永远不会继续使用 nuget。 最好将这些 dll 放
我一直在研究自托管 NuGet,但很难理解如何设置它以及它如何帮助支持我们的开发过程。 有没有人对使用哪个,如何设置有任何建议? 或者我应该只使用托管服务? 最佳答案 在查看了各种解决方案(自托管和托
我正在为 OSGeo.FDO 创建 nuget 包,但我遇到了以下问题。 FDO 使用 providers.xml列出它可以使用的所有提供程序的文件。所以我创建了一个名为 OSGeo.FDO 的主包包
我想知道 NuGet 的含义是什么。它是像blah blah get这样的东西吗?它甚至有一个有意义的名字吗?或者它是某物的缩写还是有人为了好玩而决定这个名字?请帮忙,这个问题已经困扰了我 1 周。
This question already has answers here: Is it possible to change the location of packages for NuGet?
如何在 Visual Studio 之外下载 NuGet 包?所以它可以用来创建离线包。 最佳答案 如何在没有 Visual Studio 或 Nuget 包管理器的情况下下载 NuGet 包: 在
我似乎在网络上找不到任何对此表示赞同或反对的地方。谁能指出我的答案吗?或者更好的是,如果您从事 NuGet 工作,您能否给出一些指示,说明是否有任何计划允许商业库包(我认为需要某种身份验证)包含在未来
我已经打开了 TeamCity 的 NuGet 服务器,我想推送公共(public)包(即来自 NuGet.org 等公共(public)资源),因为构建服务器无法看到我们公司外部的信息,因此从 Nu
在我的工作团队中,我们依赖两个 NuGet 提要:来自 NuGet.org 的官方提要用于公共(public)包,而我们文件服务器上的文件夹用于内部包。 这对我们来说效果很好,但我认为我们有一个潜在的
我在我工作的 Web 服务器(在 IIS 7.0 下)上设置了新的 NuGet Gallery。该网站本身已设置并运行良好。我们能够注册帐户、确认电子邮件地址,甚至通过网站本身上传新包。 我们的自动构
当我们在 Visual Studio 2017 中创建 nuget 包时,它默认将项目引用添加为另一个 nuget 引用。 我们如何在创建包时禁用它,而是: 选择不同的包名 在创建包时包含项目的 dl
我可以执行类似 - mono --runtime=v4.0.30319 /Library/TeamCity/buildAgent/work/b0d2d3fefe88d393/.nuget/NuGet.
我是一名优秀的程序员,十分优秀!