Jenkins构建常见问题
Posted peteryong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins构建常见问题相关的知识,希望对你有一定的参考价值。
最近在用jenkins搭建.NET自动编译发布环境时遇到的一些问题,解释不一定都对,仅记录以备后用。
1、MSBUILD : error MSB1008: 只能指定一个项目
Build a Visual Studio project or solution using MSBuild
可能问题1、这个WorkSpace没有被替换,在bat命令行时才可以使用,于是将MSBuild Build File改为 .angularDemoangularDemo.csproj
可能问题2、检查各个属性键值里面 有没有多余的空格,有多空格也会报错。
2、MSB4019: 未找到导入的项目 Microsoft.WebApplication.targets
出现以下错误:error MSB4019: 未找到导入的项目“C:Program Files (x86)MSBuildMicrosoftVisualStudiov14.0WebApplicationsMicrosoft.WebApplication.targets”。请确认 <Import> 声明中的路径正确,且磁盘上存在该文件。
看了下电脑上有C:Program Files (x86)MSBuildMicrosoftVisualStudiov11.0WebApplications Microsoft.WebApplication.targets
命令行参数改为:/p:Configuration=Release;VisualStudioVersion=11.0
3、error : 这台计算机上缺少此项目引用的 NuGet 程序包
error : 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 ..packagesMicrosoft.Net.Compilers.2.6.1uildMicrosoft.Net.Compilers.props。
因为项目中nuget下载的packages是不会上传到git 的,所以需要下载。
我们在把项目提交到git或者svn上的时候并不包含这些包,我们把项目从git上拉到下来后用vs打开,vs会首先来还原这些nuget包,同样,如果我们是使用msbuild.exe来构建这些项目,也需要首先还原nuget包,否则项目由于缺少依赖而无法正常编译,下面我们就介绍如何使用nuget.exe来还原项目依赖。
在jenkins的项目,配置中,build节中 增加一个bat处理命令:
"F:Software uget.exe" restore ".angularDemoangularDemo.csproj"
注:bat命令 必须要在Build命令之前。点中拖动,可调换顺序。
4、无法确定用于还原 NuGet 程序包的程序包文件夹。请指定 -PackagesDirectory 或 -SolutionDirectory
bat命令改为:"F:Software uget.exe" restore "%WORKSPACE%angularDemoangularDemo.csproj"
注:WORKSPACE 仅能适用于bat命令行参数。还是一样的错误。再修改为
"F:Software uget.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://dst89452:8172/msdeploy.axd?site=Test”发送请求。
Web 部署任务失败。(无法完成向远程代理 URL“https://dst89452:8172/msdeploy.axd?site=Test”发送请求。) [C:Program
error : 此错误指示您无法连接到服务器。请确保服务 URL 正确,此计算机和服务器计算机上的防火墙和网络设置配置正确,并且已在服务器上启动了适当的服务。 [C:Program Files
将机器名(dst89452) 改为本机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.18.23.151”),但未能验证服务器的证书。如果你信任该服务器,请再次连接并允许不信任的证书。
在配置中的 ——>构建中加一个参数(允许未信任的证书)
/p:AllowUntrustedCertificate=True
10、 ERROR_USER_UNAUTHORIZED: Web 部署任务失败。 (已使用 Web 管理服务连接到远程计算机(“172.18.23.151”),但未能授权。请确保你使用了正确的用户名和密码、你连接的站点已存在并且凭据代表的用户有权访问该站点。
看了下 密码并没有保存在PublishProfile文件中。
所以配置中还得加上password属性。
以上是关于Jenkins构建常见问题的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins——Jenkins项目构建细节(触发构建和)和SonarQube代码审查
Jenkins——Jenkins构建Maven项目(三种风格)+Jenkins项目构建细节
Jenkins——Jenkins构建Maven项目(三种风格)+Jenkins项目构建细节