Category dotnet

[POWERSHELL] เขียน Script ส่งเมล์กันครับ

multi coloured wooden mailbox mounted on door

เนื่องจาก Service เดิมที่ใช้ส่งเมล์แจ้งเตือนเรื่อง Build เกิดปัญหา เลยถือโอกาศปรับจากเดิมที่เป็น exe ของ vb6 ที่ไม่รองรับ Security ใหม่ๆ มาใช้เป็น PowerShell ให้ส่งเมล์ผ่าน Gmail แทนครับ ซึ่งมันเอาไปผูกกับ Jenkins ได้สะดวกด้วย เลยขอมาสรุปขั้นตอน และ Script ที่ใช้งาน เตรียมตัว Script PowerShell ที่ใช้

[.NET] dotnet pack -c release เพิ่ม .pdb ลงในเข้าไปใน Package

blur close up code computer

จาก Blog ตอนก่อน ได้มีการอธิบายการทำ Nuget Package ใช้ในบริษัทกันไปครับ และสอน Debug Nuget Package ที่ Build ไปครับ หลังจากที่ Build Server ได้ Update Visual Studio เป็นเวอร์ชัน 16.10.3 พบว่าคำสั่ง dotnet pack มีปัญหาครับ ผลกระทบ dotnet pack -c release เพิ่มไฟล์ Symbol (.pdb) สำหรับวิธีการเพิ่มไฟล์ Symbol (.pdb) เข้าไปใน Nuget…

[POWERSHELL] มาตรวจว่า Windows ที่ใช้งานอยู่รองรับ TPM ด้วย Power Shell

powershell

หลังจากเปิดตัว Windows 11 ไป หลายคนอาจจะเจอปัญหาว่า นอกจาก Tool ที่มีคนทำมาแล้วเนี่ย หากเราจะลองเขียนเอาบ้าง เพื่อเอาไปประยุกต์ เช่น เก็บข้อมูลเครื่อง Client มาวิเคราะห์ว่ารองรับการใช้งาน TPM ไหม (หากสนใจ เรื่อง TPM + Secured Boot ผมมีสรุปไว้ใน Blog นี้ครับ) ตัว Power Shell เป็นทางออกนึงที่ช่วยให้เราสามารถเขียน Script เพิ่มเติมลงไปด้วยครับ Power Shell สำหรับตรวจสอบว่า Windows ที่ใช้งานอยู่รองรับ TPM สำหรับหลัง Run คำสั่ง…

[DB2] เมื่อ DateTimeOffSet ของ C# ไม่สามารถจัดเก็บตรงๆได้ใน DB2

IBM DB2

พอดีได้เข้ามาชวยแก้ปัญหาของน้องในทีมครับ เนื่องจากไปเจอว่า Library ที่ตั้ง Schedule ของ C# มันต้องการ Parameter ที่เป็น DateTimeOffSet แต่ DataType นี้ มีนดันใช้งานได้กับ MS SQL Server เท่านั้นครับ กลับมาดูที่ DateTimeOffSet ดีกว่า มันเก็บอะไรบ้าง โดยแบ่งได้ 2 ส่วนครับ พอรู้จัก DateTimeOffset แล้ว และนำ Code ชุดเดียวกันมาทดสอบใช้งานตัว Dapper มัน Error ขึ้นครับ เนื่องจากไม่สามารถ Mapping C# Data…

[.NET] MSBUILD error MSB4236: The SDK ‘Microsoft.NET.Sdk’ specified could not be found.

C# Logo

เครื่อง Build Jenkins ของ .NET หลังจาก Build เสถียรมาได้พักใหญ่ๆ หลังย้าย Code มาใช้ Git แล้ว วันนี้มี Error จากเครื่อง Build แจ้งมา ดังรูปครับ พอเข้าไปดู Console Log ของ Jenkins ระบบแจ้ง Error มา ดังนี้ครับ “D:\01GITMAIN\DSApp-Dev.sln” (Clean target) (1) -> “D:\01GITMAIN\DS.Admin.UI\DS.Admin.UI-Dev.csproj” (Clean target) (101:5) -> “D:\01GITMAIN\DS.Admin.DTO\DS.Admin.DTO.Standard.csproj” (GetTargetFrameworks…

[.NET] DevExpress เมื่อ Export ข้อมูลใน Grid มาเป็นไฟล์ Excel คอมม่า ( , ) หาย และไม่แสดงเป็นตัวเลข

สำหรับปัญหานี้เป็นปัญหาที่ท้าทาย และหาข้อสาเหตุของปัญหายากมากครับ เนื่องจากที่บริษัทได้ Upgrade ตัว DevExpress แบบก้าวกระโดดครับ ห่างกันตั้ง 7 เวอร์ชัน นอกจาก API ที่ถูกยกเลิก(Deprecate) แล้ว มันยังมี API ที่เพิ่มเติมเข้ามา ซึ่งมันไม่ได้บอกตอน Compile หรือตัว Tool ที่ Check Compatibility ไม่สามารถตรวจสอบได้ครอบคลุมครับจึงเป็นที่มาของปัญหา เมื่อ Export ข้อมูลใน Grid มาเป็นไฟล์ Excel คอมม่า ( , ) หาย และไม่แสดงเป็นตัวเลข ปัญหาของเรื่องนี้ T__T แนวทางการแก้ไขปัญหา…

[.NET] แก้ปัญหา Build แล้ว Error Your project file doesn’t list win as a RuntimeIdentifier

Blog ตอนนี้ยังเป็น Blog ที่สรุปหลังปรับ Framework ขององค์กรครับ จาก Blog ก่อนหน้าที่ Error “The build is configured to run SonarQube analysis but the SonarQube analysis targets could not be located” คราวนี้มาเจอ Error ใหม่ ที่มันกวนตีนกว่าเดิมครับ เพราะ มันเป็นบ้าง ไม่เป็นบ้าง และถ้า Build ผ่านตัว Visual Studio ไม่เจอนะ…

[.NET] แก้ปัญหา Build แล้ว Error The build is configured to run SonarQube analysis

หลังจากปรับ Framework ของบริษัทให้เป็น .NET Standard เรียบร้อยแล้ว เมื่อทดสอบ Build ผ่านตัว Jenkins เกิด Error ดังนี้ The build is configured to run SonarQube analysis but the SonarQube analysis targets could not be located ภาพรวมของ SonarQube Analysis นะครับ ต้องเข้าใจก่อนนะครับ ว่าการวิเคราะห์ Code ของ SonarQube จริงๆ…

[C#] GetHashCode() ไม่เท่ากับ Equals() นะ !!!

ช่วงนี้เห็น Rule นึงที่ SonarQube มันแจ้งเตือนมาครับ “Equals(Object)” and “GetHashCode()” should be overridden in pairs ตัว Message มันหมายความว่าอย่างไรกันนะ หลังจากลองดูคำอธิบายอันนี้จะเป็นในมุมของ Security ครับ เค้าตั้งสมมติฐานว่า ถ้า เอาง่ายๆ ถ้า A และ B เรียก Equals() แล้วได้ true เมื่อไปเรียก GetHashCode() ควรจะได้ค่าเท่ากันครับ ที่ใช้คำว่าควรจะ เพราะจริงๆต้องบอกว่าสอดคล้องกันไปในทางเดียวกันมากกว่า เพราะ อันนี้เป็นคำอธิบายในมุมของ Security นะครับ มาดูในของ…

[C#] ถ้า GroupBy โดยใช้หลาย Property แล้วห้ามใช้ตัวแปรชนิด var หละ

จาก Blog ตอนก่อนหน้า [C#] ถ้า GroupBy แล้วห้ามใช้ตัวแปรชนิด var มารับหละ ? ตัวอย่างที่ผมได้ยกไปเป็นการ Group By โดยใช้เพียง 1 Property เท่านั้นครับ แต่ใช้ชีวิตจริง มีการใช้งานมากกว่า 1 Property ครับ ยกตัวอย่าง เช่น ก่อนปรับ : มีการใช้งาน 2 Property ครับ ได้แก่ ValueDate และ CashSecurityGroupCode ซึ่งมีชนิดข้อมูลเป็น DateTime และ String ตามลำดับครับ ถ้าเราจะเล่นมุกเดิมใน…