อยู่ๆ Jenkins Agents ฟ้อง Error MSB3554: Cannot write to the output file

มาจดเคสที่แปลกนิดนึง เพราะเจอว่า Jenkins Windows Agent อยู่ Build แล้วเจอ Error MSB3554

16:41:14  C:\Program Files\dotnet\sdk\9.0.300\Microsoft.Common.CurrentVersion.targets(3456,5): error MSB3554: Cannot write to the output file "C:\Users\dotnet_agent1\.jenkins\workspace\INVEST_APP_NET8\CommonUI\ds.UI.Report\obj\Release\net8.0-windows\ds.UI.Report-Standard.Properties.Resource.resources". Could not find a part of the path 'C:\Users\dotnet_agent1\.jenkins\workspace\INVEST_APP_NET8\CommonUI\ds.UI.Report\Properties\'. [C:\Users\dotnet_agent1\.jenkins\workspace\INVEST_APP_NET8\CommonUI\ds.UI.Report\ds.UI.Report-Standard.csproj]

แต่พอไปดู Error MSB3554 เขียนไฟล์ไม่ได้ ตอนแรกสงสัยว่า

  • Disk เต็ม หรือป่าว ❌
  • Permission ก็ไม่ใช่ ❌
  • Path หรือชื่อไฟล์ยาวเกินไป ไม่ใช่อีก ❌
  • ไฟล์ถูก Process อื่น Lock ไว้ ไม่มีลองปรับให้ parallelism เหลือ 1 ยังเจอ ❌
  • Path ที่ใช้ Job Jenkins มันแจ้ง ไม่มีอยู่จริง ปรากฏว่ามีอยู่จริง ❌

ตอนแรกสงสัยทำไมถึงเกิดปัญหา เลยลองไปดู Event Log ดู พบว่ามีคนมาลอง App เพิ่มตัวชื่อ Sun One + JDK2 ซึ่งมันเก่ามาก หน่าตาตัวอย่างที่หามาจากในเนต จะประมาณนี้ครับ

และมีการแก้ Config ของเครื่องอย่างตัวแปร PATH และพวก Region Format ด้วยครับ

สำหรับสาเหตุตัว Sun One มันต้อง Set Region Format เป็น Thai (Thailand) ถึงใช้งานได้ครับ เหมือนเจอสาเหตุ และปัญหาใหม่ที่ต้องมาตามแก้ต่อเลย

สรุปทางแก้

ปรับ Region Format English (United State) เหมือนเดิม ส่วน Sun One ที่มาที่หลัง อันนี้ ผมแก้ โดยการไปใช้ Locale Emulator แทนครับ ส่วนแก้ไขด้วยท่าไหน รอตามใน Blog ต่อไปเลยครับ

สำหรับเคสนี้เรียงว่าติดไปแบบงง 2-3 วันเลยครับ


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.