จาก Blog ตอนก่อน ได้มีการอธิบายการทำ Nuget Package ใช้ในบริษัทกันไปครับ และสอน Debug Nuget Package ที่ Build ไปครับ หลังจากที่ Build Server ได้ Update Visual Studio เป็นเวอร์ชัน 16.10.3 พบว่าคำสั่ง dotnet pack มีปัญหาครับ
dotnet pack <<.csproj / .sln >> -c Release --include-source --include-symbols -o nuget -p:PackageVersion= << Your Version>>
- ของเดิม เมื่อกำหนด --include-source --include-symbols แม้ว่า Build Dll แบบ Release ตัวไฟล์ Symbol (.pdb) และ Source Code ถูก Pack เข้ามาใน Nuget Package ด้วยครับ
- ของใหม่ Nuget Package ที่ได้ไม่มีไฟล์ Symbol (.pdb)
ผลกระทบ
- Debug Code เพื่อดูเคสไม่ได้ ทำให้ทีมมีปัญหากับการดูเคสด่วน
dotnet pack -c release เพิ่มไฟล์ Symbol (.pdb)
สำหรับวิธีการเพิ่มไฟล์ Symbol (.pdb) เข้าไปใน Nuget Package เมื่อ Build Dll แบบ Release Mode มีขั้นตอนที่ไม่ยาก แต่ถึกนิดนึงครับ เพราะต้องไปเพิ่ม rule ลงใน csproj เพิ่มแทนครับ โดยมี Pattern ดังนี้
<ItemGroup Label="dotnet pack instructions"> <Content Include="$(OutputPath)<<ชื่อไฟล์.pdb>>"> <Pack>true</Pack> <PackagePath>lib/<<Target Framework ของ Nuget Package>></PackagePath> </Content> </ItemGroup>
สำหรับตัวอย่างที่ลอง อย่างผมมีไฟล์ ds.Service.pdb ซึ่งตัว Project เป็น .NET Standard 2.0 สามารถเพิ่ม rule เข้าไปได้ ดังนี้ครับ
<ItemGroup Label="dotnet pack instructions"> <Content Include="$(OutputPath)ds.Service.pdb"> <Pack>true</Pack> <PackagePath>lib/netstandard2.0</PackagePath> </Content> </ItemGroup>
ถ้ามาดูภาพรวมของไฟล์ .csproj ตำแหน่งที่เพิ่มอยู่ในกรอบสีแดงครับ
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.