我有一個Jenkins創建和部署網站包的工作。msbuild的行爲與命令行有所不同Jenkins
當我從Jenkins運行作業時,它會爲每個項目創建一個包,並且部署包不包含webjobs。但是,從命令行執行相同的msbuild命令,它確實會創建一個更大的包文件,包括其中的webjobs。
我試過運行msbuild命令行使用相同的用戶帳戶詹金斯服務,並且也工作。
如果我比較這兩個MSBuild的輸出日誌,我得到了幾個不同的是:主要的區別在命令行的MSBuild日誌包括:
Target "DiscoverWebJobs" in file "E:\Jenkins\jobs\Queue - Publish\workspace\tvdQueue\packages\Microsoft.Web.WebJobs.Publish.1.0.12\tools\webjobs.wap.targets" from project "E:\Jenkins\jobs\Queue - Publish\workspace\tvdQueue\WebAPI\WebAPI.csproj" (target "Build" depends on it):
Task "Message"
WebJobs: reading [E:\Jenkins\jobs\Publish job\workspace\Project\WebAPI\Properties\webjobs-list.json]
Done executing task "Message".
Using "ReadWebJobsConfigFile" task from assembly "E:\Jenkins\jobs\Publish job\workspace\Project\packages\Microsoft.Web.WebJobs.Publish.1.0.12\tools\Microsoft.Web.WebJobs.Publish.Tasks.dll".
Task "ReadWebJobsConfigFile"
Done executing task "ReadWebJobsConfigFile".
Task "Message"
WebJobs: WebJobs found: [../blah1.csproj;../blah2.csproj;../blah3.csproj;]
Done executing task "Message".
Done building target "DiscoverWebJobs" in project "WebAPI.csproj"
我試圖在詹金斯命令行中添加目標「DiscoverWebJobs」,但它說它找不到......我花了很多時間嘗試不同的選擇,從不同的帳戶運行,使用PowerShell,...但沒有,我敢肯定是愚蠢的。
如果zip包文件不包含webjobs文件,那麼當我進行部署時,它不會更新webjobs。我可以單獨部署每個zip文件,但有一些webjobs,如果有人包含一個新的,它不會被部署,使這個項目的持續集成設置無用。
如果您提供詳細的冗長運行(通過'/ V:D'至msbuild命令),jenkins可能會記錄下爲什麼該目標被跳過的爆炸。尋找包含'WebJobs'的行*目標DiscoverWebJobs正在滑動,因爲...* – stijn
我比較了來自Jenkins和命令行的兩個msbuild日誌,但沒有跳過目標,只有只能從命令行運行的目標,但是當從Jenkins作業完成msbuild時它們不運行。 –