linux依赖包如何还原,linux上还原自主nuget包需要注意的问题

原标题:linux上还原自主nuget包需要注意的问题

问题的产生的背景

由于我们使用了jenkins进行部署(jenkins~集群分发功能和职责处理),而对于.net core项目来说又是跨平台的,所以对它的项目拉取,包的还原,项目的编译和项目的发布都是在一台linux的jenkins节点上进行的,而我们开发时是在windows系统,所以在进行还原和编译时出现了一些问题,今天的文章主要是解决这些问题的。

.net frameworks时代

我们在.net时代有包管理工具nuget,并且已经知道了它的好处,类似于nodejs的npm,帮助我们管理项目的依赖关系,升级和卸载都十分方便,它在.net项目里被存储到了解决方案下的packages目录,而在发布时,msbuild会根据这个目录去升级项目,如果这个packages里没有对象的包包依赖,就会从nuget源里进行下载,nuget全局源在windows系统里,一般存储在C:UserslindAppDataRoamingNuGetNuGet.Config文件里,而本地系统也会有一个包包的缓存,一般会存储在C:Program Files (x86)Microsoft SDKsNuGetPackages目录下面,这样在下次安装包的时候,就可以直接从本地进行安装了,官方nuget源的地址是https://api.nuget.org/v3/index.json,如果你自己去定义nuget服务器的话,也可以把它添加到nuget源里,直接修改C:UserslindAppDataRoamingNuGetNuget.Config文件就可以了,或者在vs的工具-选项里去添加它。

.net core时代

在进行跨平台的core时代后,我们的packages文件夹没有了,之前的包都被存储到了obj目录下面,而包的映射关系在objproject.assets.json这个文件里,我们可以看到当前项目引用的包包,包包的源,包包的缓存等信息。

4403dea9b41960a7b4c8f16c8b0605a9.png

注意:nuget在各大系统中源地址的路径

Windows 中路径是 %appdata%NuGetNuGet.Config ,

Mac 与 Linux 中的路径是 ~/.nuget/NuGet/NuGet.Config

如果没有 NuGet.Config 文件,可以运行 dotnet restore 命令生成。还原自主Nuget包需要注意的问题

你的nuget自主服务器需要被当前linux服务器访问到

需要在linux里建立一个全局的nuget.config文件,把自主源地址添加

把obj目录添加到源代码管理里

dotnet restore还源项目,依赖包由objproject.assets.json文件确定

dotnet build编译项目里,需要有Roslyn文件夹的执行权限

最后才是成功发布生成过程中的一些错误截图

自主依赖包找不到

5364018b0c543c360941052b7c5484b7.png

没有对Roslyn的执行权限

6cd855653ca47962ddad907293fce7c7.png

最后,等待我们的才是成功!

成功得来不容!

希望通过我们的分享,可以帮到正遇到问题的您!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值