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://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属性。

猜你喜欢

转载自www.cnblogs.com/peterYong/p/10161752.html