Jenkins构建常见问题
最近在用jenkins搭建.NET自动编译发布环境时遇到的一些问题,解释不一定都对,仅记录以备后用。
1、MSBUILD : error MSB1008: 只能指定一个项目

Build a Visual Studio project or solution using MSBuild
可能问题1、这个WorkSpace没有被替换,在bat命令行时才可以使用,于是将MSBuild Build File改为 .\angularDemo\angularDemo.csproj
可能问题2、检查各个属性键值里面 有没有多余的空格,有多空格也会报错。

2、MSB4019: 未找到导入的项目 Microsoft.WebApplication.targets
出现以下错误:error MSB4019: 未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets”。请确认 <Import> 声明中的路径正确,且磁盘上存在该文件。

看了下电脑上有C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\ Microsoft.WebApplication.targets
命令行参数改为:/p:Configuration=Release;VisualStudioVersion=11.0
3、error : 这台计算机上缺少此项目引用的 NuGet 程序包
error : 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 ..\packages\Microsoft.Net.Compilers.2.6.1\build\Microsoft.Net.Compilers.props。
因为项目中nuget下载的packages是不会上传到git 的,所以需要下载。
我们在把项目提交到git或者svn上的时候并不包含这些包,我们把项目从git上拉到下来后用vs打开,vs会首先来还原这些nuget包,同样,如果我们是使用msbuild.exe来构建这些项目,也需要首先还原nuget包,否则项目由于缺少依赖而无法正常编译,下面我们就介绍如何使用nuget.exe来还原项目依赖。
在jenkins的项目,配置中,build节中 增加一个bat处理命令:
"F:\Software\nuget.exe" restore ".\angularDemo\angularDemo.csproj"
注:bat命令 必须要在Build命令之前。点中拖动,可调换顺序。
4、无法确定用于还原 NuGet 程序包的程序包文件夹。请指定 -PackagesDirectory 或 -SolutionDirectory

bat命令改为:"F:\Software\nuget.exe" restore "%WORKSPACE%\angularDemo\angularDemo.csproj"
注:WORKSPACE 仅能适用于bat命令行参数。还是一样的错误。再修改为
"F:\Software\nuget.exe" restore "%WORKSPACE%\angularDemo.sln"
终于成功了 。在jenkins工作空间 对应的项目目录下 生成了bin目录。
5、 MSBUILD : error MSB1005: 请指定属性及其属性值
开关:/p:Configuration=Release;VisualStudioVersion=11.0;
不要有多于的分号,应该是 /p:Configuration=Release;VisualStudioVersion=11.0
6、填写webDeploy部署后,并没有部署成功也没报错
检查一下,安装配置中MSBuild配置的路径,是否与vs版本一致。
因为我的项目是vs2017构建的,所以Msbuild改为15.0。
我就是修改后才成功出现部署步骤的。

7、Web 部署任务失败。(无法完成向远程代理 URL“https://dstxxx:8172/msdeploy.axd?site=Test”发送请求)
Web 部署任务失败。(无法完成向远程代理 URL“https://dstxxx:8172/msdeploy.axd?site=Test”发送请求。) [C:\Program
error : 此错误指示您无法连接到服务器。请确保服务 URL 正确,此计算机和服务器计算机上的防火墙和网络设置配置正确,并且已在服务器上启动了适当的服务。 [C:\Program Files
将机器名(dstxxx) 改为本机ip地址后 可以了。
8、ERROR_APPPOOL_VERSION_MISMATCH: Web 部署任务失败
(你尝试使用的应用程序池已将“managedRuntimeVersion”属性设置为“v2.0”。此应用程序需要“v4.0”。
部署服务的机器上的iis站点,应用程序池 .net framework版本改为V4.0
9、ERROR_CERTIFICATE_VALIDATION_FAILED: Web 部署任务失败
(已使用指定的进程(“Web Management Service”)连接到远程计算机(“172.xxx.yy.zz”),但未能验证服务器的证书。如果你信任该服务器,请再次连接并允许不信任的证书。
在配置中的 ——>构建中加一个参数(允许未信任的证书)
/p:AllowUntrustedCertificate=True
10、ERROR_USER_UNAUTHORIZED: Web 部署任务失败
(已使用 Web 管理服务连接到远程计算机(“172.xxx.yy.zz”),但未能授权。请确保你使用了正确的用户名和密码、你连接的站点已存在并且凭据代表的用户有权访问该站点。
看了下 密码并没有保存在PublishProfile文件中。
所以配置项中还得加上password属性。如果已经加了password属性,则大概是用户密码错了,可以重新创建一个试试。
11、msdeploy error ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER: Web 部署任务失败
(Unable to perform the operation ("Create Directory") for the specified directory ("E:\IIS_Deploy\FirstSite").
This can occur if the server administrator has not authorized this operation for the user credentials you are using.
应该是配置的用户不对,在IIS中重新设置:IIS管理器权限的用户 。【在实际中我用windows用户,而不是iis管理器类型的用户,是ok的】
12、msdeploy error ERROR_FILE_IN_USE: Web deployment task failed: Web 部署任务失败
msdeploy error ERROR_FILE_IN_USE: Web deployment task failed. (Web Deploy cannot modify the file 'xx.InjectModule.dll'
on the destination because it is locked by an external process. In order to allow the publish operation to succeed,
you may need to either restart your application to release the lock, or use the AppOffline rule handler for .
Net applications on your next publish attempt. Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USE.)
原因:是说某个某件被占用了。解决方法是 重启应用程序池或者添加配置(参考链接),我使用重启应用程序池解决的,有多个应用的时候可以只重启一个,
应用程序->右键 deploy里面有选项。
13、The OutputPath property is not set for project 'xx.Service.Config.csproj'
The OutputPath property is not set for project 'xx.Service.Config.csproj'. Please check to make sure that you have specified
a valid combination of Configuration and Platform for this project. Configuration='DEV' Platform='AnyCPU'.
You may be seeing this message because you are trying to build a project without a solution file, and have specified a
non-default Configuration or Platform that doesn't exist for this project.
原因:指出的项目 没有配置Dev的配置。在项目的配置管理器中配置相应的环境。

Jenkins构建常见问题的更多相关文章
- Gitlab自动触发Jenkins构建项目
Gitlab自动触发Jenkins构建项目 一.前提 Gitlab已安装配置好. Jenkins已安装Gitlab plugin. 二.配置jenkins中Job 1.勾选触发器下的gitlab触发器 ...
- Jenkins——构建、集成中的问题
准备 Jekins 安装插件 MsBuild Plugin Team Foundation Server Plug-in 配置环境变量 我的电脑中设置环境变量,Path中添加msbuild的路 ...
- 用Vagrant创建Jenkins构建环境
这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 创建自己的Vagrant box 用Vagrant搭建Jenkins构建环境 用Vagrant和Ansible搭建持续交付平台 ...
- Jenkins构建时报错:No Space left on device
Jenkins在自动化构建服务的同时也在消耗服务器的磁盘空间,如果构建的项目个数很多,而Jenkins 服务器磁盘空间又不是非常大的话,每隔一段时间磁盘空间就会爆满导致,就会出现磁盘空间不足无法构建的 ...
- RF+Jenkins构建持续集成
引入RF是为了能够快速的开展自动化验收测试,Jenkins而一种持续集成工具,用于监控持续重复的工作,持续的软件版本发布/测试项目,而通过RF+Jenkins可以有利的对RF构建的接口项目进行持续集成 ...
- Docker下搭建Jenkins构建环境
首先需要搭建好docker环境的linux系统,这个教程多如牛毛,在此不再赘述. 然后编写一个dockerfile来生成一个镜像,dockerfile其实就是一系列命令的集合,有点像windows的批 ...
- Gitlab自动触发Jenkins构建打包
一.目的 在部门的测试环境中,开发人员一旦向gitlab仓库提交成功代码,gitlab就会自动触发jenkins构建项目.当然在构建后还可以添加项目部署或者自动化测试的脚本.这里只针对测试环境. 二. ...
- Jenkins构建Android项目持续集成之findbugs的使用
Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题 ...
- 基于Jmeter+maven+Jenkins构建性能自动化测试平台
一.目的: 为能够将相关系统性能测试做为常规化测试任务执行,且可自动无人值守定时执行并输出性能测试结果报告及统计数据,因此基于Jmeter+maven+Jenkins构建了一套性能自动化测试平台 ...
随机推荐
- jvm之gc日志
ava GC日志可以通过 +PrintGCDetails开启 以ParallelGC为例 YoungGC日志解释如下 FullGC:
- 企业级服务元年:iClap高效解决手游更新迭代问题
2006年至今,手游市场经历了不少变革,从WAP站到2009年智能手机时代来临,2012大量资本涌入国内手游行业,到2014年手游市场趋于成熟,细分市场成为追逐热门,在2015年优胜劣汰的资本寒冬浪潮 ...
- 对Java平台的理解
1) Java是一种面向对象的语言(封装,继承,多态),最显著的特性有两个方面: ----书写一次,到处运行(Write once,run anywhere) 能够非常容易的获得跨平台的能力 --- ...
- SoapUI、Jmeter、Postman三种接口测试工具的比较
1. 用例组织方式 首先是用例组织方式的不同,不同的目录结构与组织方式代表不同工具的测试思想,学习一个测试工具应该首先了解其组织方式. SoapUI的组织方式如下图,最上层是WorkSpace,每个 ...
- bzoj1626 / P2872 [USACO07DEC]道路建设Building Roads
P2872 [USACO07DEC]道路建设Building Roads kruskal求最小生成树. #include<iostream> #include<cstdio> ...
- 20145106 《Java程序设计》第1周学习总结
20145106 <Java程序设计>第1周学习总结 教材学习内容总结 因为我用的是Mac,所以教材内容暂时对我的编译java没有帮助.不过还好我也在同学和自己的帮助学习下初步学会了在Ma ...
- 20145301《网络对抗》Exp2 后门原理与实践
20145301<网络对抗>Exp2 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 系统或者某些软件自身留下的后门. 钓鱼网站等非正规网站上捆绑下载 例举 ...
- personal evolution
自我清醒 认知自我的行为和心理 你确定你自己是出于理智而发出某种行为? 首先需要确定哪些是人的天性 认知失调理论 从众效应 晕轮效应 霍桑效应 马太效应 期望效应 刻板效应 破窗效应 安排思维 安排闲 ...
- POJ 3159 Candies(差分约束+最短路)题解
题意:给a b c要求,b拿的比a拿的多但是不超过c,问你所有人最多差多少 思路:在最短路专题应该能看出来是差分约束,条件是b - a <= c,也就是满足b <= a + c,和spfa ...
- HDU 5934 Bomb(tarjan/SCC缩点)题解
思路:建一个有向图,指向能引爆对象,把强连通分量缩成一点,只要点燃图中入度为0的点即可.因为入度为0没人能引爆,不为0可以由别人引爆. 思路很简单,但是早上写的一直错,改了半天了,推倒重来才过了... ...