一次xbuild编译失败的排查
今天一个待上线服务测试完毕,需要构建CI,按照模板配置好包还原,xbuild编译,报错,错误信息如下:
EtcdRegister.cs(8,15): error CS0234: The type or namespace name `LawDissector' does not exist in the namespace `Gridsum'. Are you missing an assembly reference?
EtcdRegister.cs(14,20): error CS0246: The type or namespace name `IEtcdClient' could not be found. Are you missing an assembly reference?
3 Warning(s)
2 Error(s)
Time Elapsed 00:00:03.7878830
Build step 'Execute shell' marked build as failure
Finished: FAILURE
缺少一个包引用,但是如果用MSBUILD则没有问题。
首先分析这个缺少的包,推送至公司nuget源的组件,在jenkins服务器上该项目的路径下查看该包的还原packages文件夹,这个组件已经被正确还原了;
按道理说所有依赖组件都已经被正确还原,那么不会出现编译缺组件的问题,而且版本信息也无误。
分析解决方案的组织结构,其引用了两个外部工程(csproj),初步定为问题可能与此相关,缺少的组件也是在引用的外部工程所依赖的,因此猜测问题是不是因为所引用的外部工程在还原过程中并未还原这个组件导致,在jenkins服务器上查看着两个外部工程所属的真实解决方案的packages,确实少了这个组件的还原包。
解决方法:
1:在引用的外部工程所属的解决方案packages.config中添加缺少的依赖组件的nuget信息;
2:在jenkins集成中,对引用的外部工程所属的nuget进行一次还原;
3:再对本项目进行编译,问题解决。
这个问题在跨项目工程引用的情境下应该都会出现,xbuild的编译依赖于nuget包在各个依赖项的原始路径下的还原信息,以此作为排查依据即可。
一次xbuild编译失败的排查的更多相关文章
- 一次gcc编译失败分析
1. 场景: 在使用gcc编译时,编译器报错:xxx:'xxx'未定义的引用 2. 排查过程: 首先,我很自然的想到是不是自己使用了未定义的函数或者将函数名称写错了,在检查了一边过后,我发现自己使 ...
- 因GIT默认忽略.dll文件导致的Visual Studio项目通过Bamboo编译失败
背景 由GIT管理的Visual Studio项目,使用Stash管理远端代码库,通过与Stash集成的Bamboo生成项目并发布 现象 Visual Studio项目本地生成成功,用SourceTr ...
- 格式化代码引发的css编译失败
之前在做feather项目,处理IE8下的问题时,写 filter: progid: DXImageTransform.Microsoft.AlphaImageLoader(src='#', sizi ...
- Maven多模块项目编译失败:程序包xxx不存在
项目结构如下: parent(父类工程) | - - - - - common(通用工具类子工程) | - - - - - projectA(springboot子工程,依赖common工程) pom ...
- redis make编译失败的原因
make clean redis编译失败可能是: 1.未安装gcc,gcc-c++ yum install gcc yum install gcc-c++ 2.未安装tcl yum install t ...
- Android studio 编译失败Error:Could not read entry ':app:processDebugManifest' from cache taskArtifacts.b
Android studio 编译失败 Error:Could not read entry ':app:processDebugManifest' from cache taskArtifacts. ...
- WDA编译失败问题
1.放假回来,wda编译失败,报错如下 2018-09-25 10:03:09.020964+0800 WebDriverAgentRunner-Runner[335:33309] +[CATrans ...
- xcode编译失败
iPhone自动化需要使用WDA.经过一段时间,再次编译,会出现WDA编译失败的问题,提示 The operation couldn't be completed. Unable to log in ...
- [问题解决]gradle编译失败系统找不到指定的文件
[问题解决]gradle编译失败系统找不到指定的文件 问题描述 Error:C:\Users\diql.gradle\caches\2.14.1\scripts-remapped\settings_9 ...
随机推荐
- flhs笔试题-回家上机实践
这是最近参加的一个公司的笔试题,回家上机写了下代码,希望对有需要的小伙伴有用,简单实现字符串和数组在指定位置的插入: package org.flhs; import com.google.commo ...
- 【Java每日一题】20161230
// 20161229问题解析请点击今日问题下方的"[Java每日一题]20161230"查看(问题解析在公众号首发,公众号ID:weknow619)package Dec2016 ...
- JVM之内存结构
JVM是按照运行时数据的存储结构来划分内存结构的.JVM在运行Java程序时,将他们划分成不同格式的数据,分别存储在不同的区域,这些数据就是运行时数据.运行时数据区域包括堆,方法区,运行时常量池,程序 ...
- intellij中不能导入jar包
①选中项目点击右键,选择open modual settings(或者直接按F4): ②在弹出的窗口左端选择Libraries: ③点击左边加号,选择From Maven Repository; ④将 ...
- 网址http换成https ----js
<script type="text/javascript"> var url = window.location.href; if (url.indexOf(&quo ...
- 【Spring】SpringMVC入门示例讲解
目录结构: // contents structure [-] SpringMVC是什么 Spring MVC的设计原理 SpringMVC入门示例 1,复制Jar包 2,Web.xml文件 3,My ...
- 纯CSS3实现多层云彩变换飞行动画
查看效果:http://hovertree.com/texiao/css3/4/效果2 效果图: 代码如下: <!doctype html> <html lang="zh& ...
- android 自定义动画
android自定义动画注意是继承Animation,重写里面的initialize和applyTransformation,在initialize方法做一些初始化的工作,在applyTransfor ...
- Genymotion报Unable to load virtualbox engine错误
- shell 中的与、或表达式
今天总结一下linux shell中逻辑关机表达方式.逻辑与的表达: 1).if [ $xxx=a -a $xx=b ] 注:-a表示and的意思 2).if [ $xxx=a ] && ...