最近在协助验证Jenkins自动编译发布时,对一些.Net Core编译问题进行了解决;特记录一下

一、编译生成netcoreapp目录问题

  • 问题现象

   .net core项目编译输出目录总是包含在【netcoreapp3.1】目录下,如图:

   

  • 解决办法

   在项目文件中(*.csproj)中添加节点:<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>

   位置如下:

  <PropertyGroup>
<OutputType>Library</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies><!--所有依赖文件拷贝到输出目录-->
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<ApplicationIcon />
<StartupObject />
<AssemblyName>CustomReportResolver</AssemblyName>
</PropertyGroup>

二、编译语言包问题

  • 问题现象

   在编译某些项目时,产生了多个文件包如下图:

   

  • 产生原因

   点开文件夹内,发现为:Microsoft.CodeAnalysis 包产生的文件(语言包)

   

  • 解决办法

   继续在项目文件中添加节点:<SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>指定语言包;如果不想要语言包可指定一个非语言包名的内容

   最终编译结果如下:

   

三、Jenkins自动编译Nuget包还原问题

  • 问题现象

   由于程序中,大量使用了PackageReference方式引用nuget包,在使用Jenkins自动编译时,则使用 Nuget Restore 后,再使用 dotnet build 编译包。但是编译时总是失败提示以下内容:

   根据问题提示,明确包版本不是最新的导致,然后根据vs中dll目录中,删除后,再编译依旧提示错误。

  • 产生原因

   最终在网上找到原因:

通过PackageReference的方式引用在Nuget包还原的时候会在obj目录下自动生成Nuget包引用的配置文件project.assets.json*.csproj.nuget.cache*.csproj.nuget.g.props*.csproj.nuget.g.targets

最终通过对比Jenkins和Vs自动编译时生成内容发现包换成位置不同导致的:

  

  • 解决办法

 删除Jenkins编译时,所引用的包缓存中的包内容,重新编译;问题解决。

希望记录的问题,能解决一些问题

【问题记录】—.NetCore 编译问题的更多相关文章

  1. Dockerfile 编译安装mysql5.7 千万不要执行.只是记录一下编译安装罢了

    开启所有核心make  20G 内存都不够玩,跑3-4个核心吧,还好. 最后的出来的镜像3G多,百思不得其解,看了官方的Dockerfile,也没什么特别,就是 apt 或者 yum.好吧,不知做了什 ...

  2. QT踩坑记录1-Q_OBJECT编译问题

    QT踩坑记录1-Q_OBJECT编译问题 QTC++Bugs 错误输出 Q_OBJECT 宏错误的地方会编译出现这样的错误, 无法找到.... 由于自己不想再看到这个错误, 此处 复制自 参考连接1, ...

  3. 记录opencv编译过程

    准备学习opencv,参考了几个网页终于完成.编辑器和opencv版本都选择最新的版本. 记录过程如下 1. 下载准备: 1)         Opencv源码, 下载地址: https://sour ...

  4. [问题记录]cocos2dx编译打包apk过程&问题记录

    目录: 1. 入门 2. 编译 3. 问题 4. 总结 5. 参考 ------------------------------------------------------------------ ...

  5. 【Android】记录反编译安卓程序步骤

    主要是为了分析一个 App 里面用到的接口,以后移植 UWP 用. 1.http://jd.benow.ca/ 下载 JD-GUI. 2.https://github.com/pxb1988/dex2 ...

  6. Nginx的平滑升级记录---适用于编译安装的Nginx

    一.查看自己的Nginx的版本号 [root@localhost sbin]# cd /usr/local/nginx/sbin/ [root@localhost sbin]# ls nginx [r ...

  7. 【记录】编译安装 YAML 扩展

    转自:https://learnku.com/articles/30985 Yaml,专门用来写配置文件的语言   依赖安装 $ sudo apt-get install libyaml-dev   ...

  8. PIL安装记录,编译支持jpeg png

    PIL是python理想的图片处理module,但是想要良好的支持各种图片,还需要检查一下几步,否则会提示:IOError: decoder jpeg not available之类的. 我的环境:L ...

  9. Maven package 报错解决记录以及编译scala的pom.xml

    可以打包的pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:/ ...

随机推荐

  1. VMware虚拟机ubuntu下安装VMware Tools步骤

    双击VMware Tools进入 找到后缀.tar.gz的压缩文件 将压缩文件复制到home目录下,home目录即左侧的主目录文件夹 打开命令行终端,默认应该就是home目录,如果不是home目录,在 ...

  2. Harbor介绍与企业级私有Docker镜像仓库搭建

    Harbor介绍与安装部署,并实现通过http和https协议[自签发SSL证书]访问,客户端如何通过Harbor镜像仓库实现镜像的上传[推送]与下载[拉取]. Harbor介绍 Harbor,是一个 ...

  3. JMETER并发压测-自定义不同请求参数

    背景 虽然可以请求相同的接口做测试,但是请求参数每次都是相同的.为了模拟不同的用户,请求不同的参数,所以要自定义参数来做多线程并发压力测试. 点赞再看,关注公众号:[地藏思维]给大家分享互联网场景设计 ...

  4. spring多模块之间的调用

    https://blog.csdn.net/tomcat_2014/article/details/50206197?locationNum=5

  5. TCP/IP 寻址

    原文:TCP/IP 寻址 第一节:TCP/IP 简介 第二节:TCP/IP 寻址 第三节:TCP/IP 协议 第四节:TCP/IP 邮件 TCP/IP 使用 32 个比特(bit)或者 4 个 0 到 ...

  6. 【题解】小Z的袜子

    期末考试结束了,来写写blog吧 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命-- 具 ...

  7. Vue.js 学习笔记之四:Vue 组件基础

    到目前为止,这个系列的笔记所展示的都是一些极为简单的单页面 Web 应用程序,并且页面上通常只有几个简单的交互元素.但在实际生产环境中,Web 应用程序的用户界面往往是由多个复杂的页面共同组成的.这时 ...

  8. fastadmin 增加批量操作字段 提示无权限

    是这样的找了权限节点的问题,始终找不到,后来 在社区传世人回答别人问题是提及到  $multiFields 就全局搜了下 在基类 Backend 里找到了这个.然后拿到 控制器中添加需要的参数 再次尝 ...

  9. lua 源码阅读 5.3.5 笔记

    记录下吧,断断续续读了几周,收益还是很多的. 推荐阅读顺序: 1) 基础数据类型 lstring.c ltable.c lobject.c lfunc.c lstate.c 2)  标准库(这个相对简 ...

  10. unix中的线程池技术详解

    •线程池就是有一堆已经创建好了的线程,当有新的任务需要处理的时候,就从这个池子里面取一个空闲等待的线程来处理该任务,当处理完成了就再次把该线程放回池中,以供后面的任务使用,当池子里的线程全都处理忙碌状 ...