DotNetCore跨平台~linux上还原自主nuget包需要注意的问题
问题的产生的背景
由于我们使用了jenkins进行部署(jenkins~集群分发功能和职责处理),而对于.net core项目来说又是跨平台的,所以对它的项目拉取,包的还原,项目的编译和项目的发布都是在一台linux的jenkins节点上进行的,而我们开发时是在windows系统,所以在进行还原和编译时出现了一些问题,今天的文章主要是解决这些问题的。
.net frameworks时代
我们在.net时代有包管理工具nuget,并且已经知道了它的好处,类似于nodejs的npm,帮助我们管理项目的依赖关系,升级和卸载都十分方便,它在.net项目里被存储到了解决方案下的packages目录,而在发布时,msbuild会根据这个目录去升级项目,如果这个packages里没有对象的包包依赖,就会从nuget源里进行下载,nuget全局源在windows系统里,一般存储在C:\\Users\\lind\\AppData\\Roaming\\NuGet\\NuGet.Config文件里,而本地系统也会有一个包包的缓存,一般会存储在C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\目录下面,这样在下次安装包的时候,就可以直接从本地进行安装了,官方nuget源的地址是https://api.nuget.org/v3/index.json,如果你自己去定义nuget服务器的话,也可以把它添加到nuget源里,直接修改C:\Users\lind\AppData\Roaming\NuGet\Nuget.Config文件就可以了,或者在vs的工具-选项里去添加它。
.net core时代
在进行跨平台的core时代后,我们的packages文件夹没有了,之前的包都被存储到了obj目录下面,而包的映射关系在obj\project.assets.json这个文件里,我们可以看到当前项目引用的包包,包包的源,包包的缓存等信息。
还原自主Nuget包需要注意的问题
- 你的nuget自主服务器需要被当前linux服务器访问到
- 需要在linux里建立一个全局的nuget.config文件,把自主源地址添加
- 把obj目录添加到源代码管理里
- dotnet restore还源项目,依赖包由obj\project.assets.json文件确定
- dotnet build编译项目里,需要有Roslyn文件夹的执行权限
- 最后才是成功发布
生成过程中的一些错误截图
自主依赖包找不到
没有对Roslyn的执行权限
最后,等待我们的才是成功!
成功得来不容!
希望通过我们的分享,可以帮到正遇到问题的您!
感谢各位阅读!
DotNetCore跨平台~linux上还原自主nuget包需要注意的问题的更多相关文章
- 搭建自己的NuGet服务器,上传自定义NuGet包
第一步搭建NuGet服务器 创建空Web项目 安装Nuget服务,目前最新版本2.8.2 安装完成,会自动生产服务,出现如下界面 发布该网站,并部署至IIS 将.nupkg文件发布至网站的Packag ...
- 详解.Net 如何上传自己的包到Nuget平台以及如何使用Nuget包管理器
首先需要一个Nuget账户,可以在官网注册:https://www.nuget.org.已有账户略. 需要一个ApiKeys,登录之后,在我的账户里找到ApiKeys进去; 创建ApiKeys 下载N ...
- nuget服务器搭建,以及如何发布一个Nuget包
本文章主要介绍如何将本地dll打包成为一个Nuget包,并如何发布到自己的nuget服务器.章节如下 1. 本地dll如何打包,以及版本的更新 2. 在linux上搭建nuget.server 3. ...
- idea打包springboot+maven项目并发布在linux上
2018年11月13日我亲测有效的,很简单的,借鉴博客:https://blog.csdn.net/smilecall/article/details/56288972 第一步:随便建一个maven类 ...
- Linux上的文件查找工具之locate与find
前言 Linux上提供了两款工具用于查找文件,一款是locate,另一款是find. locate的特点是根据已生成的数据库查找,速度较快,但是查找的是快照数据,不准确. 因此在日常使用中,为了准确性 ...
- 使用BaGet来管理内部Nuget包
有的时候,我们想要制作一些nuget包,供自己内部调用,不想公开出去,那么就需要一个能够集中管理nuget包的服务了,今天我来给大家介绍一款轻便好用的包管理服务-----BaGet 下载并部署BaGe ...
- Docker在Linux上运行NetCore系列(四)使用私有Nuget与多个本地包引用运行ASPNetCore
转发请注明此文章作者与路径,请尊重原著,违者必究. 本篇文章演示了使用Dockerfile在Linux(ubuntu16.04)系统上构建ASPNetCore应用,并且在一个解决方案中存在多个项目之间 ...
- 使用 Cake 推送 NuGet 包到 AzureDevops 的 Artifacts 上
前言 大家好,我最近在想如何提交代码的时候自动的打包 NuGet 然后发布到 AzureDevOps 中的 Artifacts,在这个过程中踩了很多坑,也走了很多弯路,所以这次篇文章就是将我探索的结果 ...
- [转帖]DotNetCore跨平台~System.DrawingCore部署Linux需要注意的
DotNetCore跨平台~System.DrawingCore部署Linux需要注意的 https://www.bbsmax.com/A/QV5ZemYVJy/?tdsourcetag=s_pc ...
随机推荐
- latex 生成pdf
我个人还是比较推崇传统的方法:先生成dvi,在生成pdf. 直接在winEdt中点击最下方的Windows Command Prompt, 否则从cmd进入命令行的话,还要进入tex文件夹,好麻烦. ...
- MySQL57安装图解
MySQL57安装图解... ============================= 0-需要准备的安装包 =================== 1在百度下载MySQl ============ ...
- 高新技术---枚举及部分JDK1.5新特性
第一讲 枚举 一.概述 这里说的枚举,不是集合vector的特有枚举迭代器,而是JDK1.5的一个新特性.之所以单独拿它开刷,是这个知识点比较重要,同时相对来说比较难理解一些. 为什么要有枚举 ...
- 使用Groovy处理SoapUI中Json response
最近工作中,处理最多的就是xml和json类型response,在SoapUI中request里面直接添加assertion处理json response的话,可以采用以下方式: import gro ...
- 用PyCharm执行测试成功但无法生成HTMLTestRunner报告
问题:代码写的没问题,执行也成功了,但就是无法生成HTMLTestRunner的报告 其实这是编辑器搞得鬼,编辑器为了方便用户执行测试,都有一项功能,可以用编辑器来调用unittest或者nose来执 ...
- 设置Linux环境变量的方法与区别(Ubuntu)
设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别. 通过文件设置 Linux 环境变量 首先是设置全局环境变量, ...
- html5 响应式布局(媒体查询)
响应式布局 响应式布局,简而言之,就是一个网站能够兼容多个终端--而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网浏览而诞生的. 响应式布局可以为不同终端的用户 ...
- Ubuntu操作系统下安装JDK、tomcat、mysql
1.先从安装虚拟机开始 01.首先打开VMware虚拟机. 02.然后,进入home主页,点击"create a New Virtual Machine"一栏,就会弹出一个 ...
- RobotFramework安装完成后怎么在桌面显示ride图标
安装了RobotFramework后,怎么让桌面上显示带有机器人的图标呢? 一.桌面上创建ride快捷方式 进入到python的安装目录的/Scripts目录下,找到ride.py文件-->右键 ...
- 201521123012 《Java程序设计》第二周学习总结
1. 本章学习总结 1.Java中String和StringBuilder的区别. 2.Arrays()的用法. 2.课后作业 1.使用Eclipse关联jdk源代码(截图),并查看String对象的 ...