Jenkins構建常見問題

  最近在用jenkins搭建.NET自動編譯發佈環境時遇到的一些問題,解釋不必定都對,僅記錄以備後用。git

一、MSBUILD : error MSB1008: 只能指定一個項目

 

Build a Visual Studio project or solution using MSBuildweb

可能問題一、這個WorkSpace沒有被替換,在bat命令行時纔可使用,因而將MSBuild Build File改成  .\angularDemo\angularDemo.csprojwindows

可能問題二、檢查各個屬性鍵值裏面 有沒有多餘的空格,有多空格也會報錯。服務器

 

 

二、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.0app

 

三、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 的,因此須要下載。svn

咱們在把項目提交到git或者svn上的時候並不包含這些包,咱們把項目從git上拉到下來後用vs打開,vs會首先來還原這些nuget包,一樣,若是咱們是使用msbuild.exe來構建這些項目,也須要首先還原nuget包,不然項目因爲缺乏依賴而沒法正常編譯,下面咱們就介紹如何使用nuget.exe來還原項目依賴。ui

在jenkins的項目,配置中,build節中 增長一個bat處理命令:this

"F:\Software\nuget.exe" restore ".\angularDemo\angularDemo.csproj"

注:bat命令 必需要在Build命令以前。點中拖動,可調換順序。spa

四、沒法肯定用於還原 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目錄。

五、 MSBUILD : error MSB1005: 請指定屬性及其屬性值

開關:/p:Configuration=Release;VisualStudioVersion=11.0;

不要有多於的分號,應該是 /p:Configuration=Release;VisualStudioVersion=11.0

六、填寫webDeploy部署後,並無部署成功也沒報錯

  檢查一下,安裝配置中MSBuild配置的路徑,是否與vs版本一致。

由於個人項目是vs2017構建的,因此Msbuild改成15.0。

我就是修改後才成功出現部署步驟的。

 

七、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地址後 能夠了。

八、ERROR_APPPOOL_VERSION_MISMATCH: Web 部署任務失敗

  (你嘗試使用的應用程序池已將「managedRuntimeVersion」屬性設置爲「v2.0」。此應用程序須要「v4.0」

部署服務的機器上的iis站點,應用程序池 .net framework版本改成V4.0

九、ERROR_CERTIFICATE_VALIDATION_FAILED: Web 部署任務失敗

   (已使用指定的進程(「Web Management Service」)鏈接到遠程計算機(「172.xxx.yy.zz」),但未能驗證服務器的證書。若是你信任該服務器,請再次鏈接並容許不信任的證書。

在配置中的 ——>構建中加一個參數(容許未信任的證書)
/p:AllowUntrustedCertificate=True

十、ERROR_USER_UNAUTHORIZED: Web 部署任務失敗

  (已使用 Web 管理服務鏈接到遠程計算機(「172.xxx.yy.zz」),但未能受權。請確保你使用了正確的用戶名和密碼、你鏈接的站點已存在而且憑據表明的用戶有權訪問該站點。

看了下 密碼並無保存在PublishProfile文件中。

因此配置項中還得加上password屬性。若是已經加了password屬性,則大概是用戶密碼錯了,能夠從新建立一個試試。

十一、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的】

十二、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裏面有選項。

1三、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的配置。在項目的配置管理器中配置相應的環境。

相關文章
相關標籤/搜索