สำหรับ Error ตัวนี้ ผมมาเจอตอนที่ลอง pack DevExpress22 Lib จากไฟล์ .nuspec ที่ DevExpress ได้เก็บไว้ใน Office Package เพื่อเตรียมลอง Build WinApp และ WebApp ที่ใช้งาน Lib อยู่ครับ
Problem
- เมื่อลองรันคำสั่ง dotnet pack จะเจอ Error
error MSB4068: The element <package> is unrecognized, or not supported in this context.
- หลังจากลองงมๆดูจะพบว่า dotnet pack ไม่รองรับ .nuspec nuspec - dotnet pack "The element <package> is unrecognized" - Stack Overflow
- ลองย้ายมาใช้ nuget pack เจอ Error
Error NU1012: Some dependency group TFMs are missing a platform version: net5.0-windows
Solution
- ย้ายไปใช้ nuget.exe version ที่ต่ำกว่า 5.9 อ้างอิงจาก Packaging of 'net5.0-windows' broken since 5.9.1.11 · Issue #10853 · NuGet/Home (github.com)
- ดังนั้นผมเลือก nuget.exe เวอร์ชัน 5.8.1 มาแทนครับ จาก NuGet Gallery | Downloads และลองทดสอบ Pack
.\nuget.exe pack "C:\DevExpress22.1.3\Offline Packages\devexpress.win.design\22.1.3\devexpress.win.design.nuspec" -OutputDirectory "C:\DevExpress22.1.3\Offline Packages\nugetpk"
- สำเร็จครับ จากรูปจะเห็นชื่อ exe เป็น nuget581.exe อันนี้ ผม rename เพื่อกันสับสนครับ
- แถม ถ้าจะ Publish ขึ้น Package Manage ในองค์กรใช้คำสั่งประมาณนี้ได้ครับ
dotnet nuget push "*.nupkg" --api-key <<YOUR-API-KEY>> --source <YOUR-URL> --Example dotnet nuget push "*.nupkg" --api-key ssdsds-test-api3-key6-367514c71d8b --source http://dev.local:8081/repository/nuget-hosted/
Reference
- Packaging of 'net5.0-windows' broken since 5.9.1.11 · Issue #10853 · NuGet/Home (github.com)
- NuGet Gallery | Downloads
- ถ้าใครอยากรู้เกี่ยวกับไฟล์ .nuspec เพิ่มเติม ลองดู Link นี้ครับ Create a NuGet package using nuget.exe CLI | Microsoft Docs
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.