今天一个待上线服务测试完毕,需要构建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编译失败的排查的更多相关文章

  1. 一次gcc编译失败分析

    1. 场景: ​ 在使用gcc编译时,编译器报错:xxx:'xxx'未定义的引用 2. 排查过程: 首先,我很自然的想到是不是自己使用了未定义的函数或者将函数名称写错了,在检查了一边过后,我发现自己使 ...

  2. 因GIT默认忽略.dll文件导致的Visual Studio项目通过Bamboo编译失败

    背景 由GIT管理的Visual Studio项目,使用Stash管理远端代码库,通过与Stash集成的Bamboo生成项目并发布 现象 Visual Studio项目本地生成成功,用SourceTr ...

  3. 格式化代码引发的css编译失败

    之前在做feather项目,处理IE8下的问题时,写 filter: progid: DXImageTransform.Microsoft.AlphaImageLoader(src='#', sizi ...

  4. Maven多模块项目编译失败:程序包xxx不存在

    项目结构如下: parent(父类工程) | - - - - - common(通用工具类子工程) | - - - - - projectA(springboot子工程,依赖common工程) pom ...

  5. redis make编译失败的原因

    make clean redis编译失败可能是: 1.未安装gcc,gcc-c++ yum install gcc yum install gcc-c++ 2.未安装tcl yum install t ...

  6. 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. ...

  7. WDA编译失败问题

    1.放假回来,wda编译失败,报错如下 2018-09-25 10:03:09.020964+0800 WebDriverAgentRunner-Runner[335:33309] +[CATrans ...

  8. xcode编译失败

    iPhone自动化需要使用WDA.经过一段时间,再次编译,会出现WDA编译失败的问题,提示 The operation couldn't be completed. Unable to log in ...

  9. [问题解决]gradle编译失败系统找不到指定的文件

    [问题解决]gradle编译失败系统找不到指定的文件 问题描述 Error:C:\Users\diql.gradle\caches\2.14.1\scripts-remapped\settings_9 ...

随机推荐

  1. Android开机动画

    Android系统的开机动画可分为三个部分,kernel启动,init进程启动,android系统服务启动.这三个开机动画都是在一个叫做 帧缓冲区(frame buffer)的硬件设备上进行渲染绘制的 ...

  2. 【无私分享:ASP.NET CORE 项目实战(第十章)】发布项目到 Linux 上运行 Core 项目

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 ASP.Net Core 给我们带来的最大的亮点就是跨平台,我在我电脑(win7)上用虚拟机建了个 CentOS7 ,来演示下 ...

  3. Asp.net 面向接口可扩展框架之业务规则引擎扩展组件

    随着面向接口可扩展框架的继续开发,有些功能开发出现了"瓶颈",有太多的东西要写死才好做.但写死的代码扩展性是非常的不好,迷茫中寻找出入... 进而想到我以前开发的好几个项目,都已有 ...

  4. python 数据类型---列表使用 之一

    列表的表现形式:其中的元素可以使任何数据类型,像 字符串,数字, 字典, 列表,变量 等任何类型 age = 28 name = ["Frank", "Lee" ...

  5. [修正] Firemonkey Android 显示 Emoji (颜文字)

    问题:在 Android 平台下,显示 Emoji 文字,无法显示彩色(皆为黑色),例如 Edit 控件,即使将 Edit.ControlType = Platform 设为平台原生控件,还是没用(真 ...

  6. python之最强王者(5)——Nunber(数字)

    1.Python Number(数字) Python Number 数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间. 以下实例在变量 ...

  7. nodejs 安装

    安装nodejs进入nodejs源码./configure --prefix=/software/installed/nodemakemake install 如果configure的时候提示:WAR ...

  8. Less配置环境

    一.安装Sublime 插件 1.安装Less插件: ctrl+shift+p>install Package>输入less按Enter 2.安装Less2CSS插件:ctrl+shift ...

  9. SVG图形引用、裁切、蒙版

    SVG图形引用.裁切.蒙版,使用三个标签: 1. <use>标签创建图形引用 2. <clipPath>标签裁切图形 3. <mask>标签创建蒙版  ...

  10. Android 手机卫士--获取联系人信息并显示与回显

    前面的文章已经实现相关的布局,本文接着进行相关的功能实现 本文地址:http://www.cnblogs.com/wuyudong/p/5951794.html,转载请注明出处. 读取系统联系人 当点 ...