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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM