تو سلوشنهای بزرگ دات نت، مدیریت ورژن پکیجهامون میتونه سخت باشه. پکیجهایی که توی چندتا پروژه استفاده شده مثل
Newtonsoft.Json
یا مثلا تو پروژههای تست:
Xunit, NSubstitute, Shouldly
دردسر وقتی شروع میشه که بخوایم ورژن یکی ازین پکیجها رو تغییر بدیم.
مایکروسافت قابلیتی برای پروژههاش تعریف کرده به نام
Central Package Management
به این صورت هست که شما توی سلوشنتون یک فایل به اسم
Directory.Packages.props
میسازین و توی اون اسم پکیجها به همراه ورژنشون رو مشخص میکنین و بعد از اون توی هر پروژهای که خواستین کافیه فقط اسم (بدون ورژن) پکیج رو به فایل csproj پروژهتون اضافه کنین. اینطوری از یجا ورژن پکیج ها رو مشخص میکنین هرموقع خواستین میتونین به راحتی تغییرش بدین.
اگه پروژهای داشته باشین و بخواین دستی به CPM تغییرش بدین، احتمالا کار حوصله سر بر و سختی باشه. اینجاست که CPMGen به کمکتون میاد! با استفاده از cpmgen میتونین با یک دستور خیلی سریع پروژهتون رو به CPM تغییر بدین. این یک ابزار دات نت هست و با استفاده از دستور زیر میتونین نصبش کنین:
dotnet tool install --global CPMGen
قابلیتهاش:
بهصورت خودکار فایلهای .sln یا .csproj را در پروژه پیدا میکنه (یا میتونی مسیر دلخواه بدهی).
یک فایل Directory.Packages.props میسازه و نسخهٔ همهٔ پکیجها را متمرکز میکنه
فایلهای csproj. رو آپدیت میکنه و قسمت ورژن پکیج رو خودش حذف میکنه
امکان بکاپ داخلی داره تا نسخهٔ اصلی فایلها حفظ شود.
در صورت نیاز، پوشهٔ بکاپ رو به .gitignore اضافه میکند.
لینک پروژه:
https://github.com/PureJoyMind/CPMGen داخل پروژه اطلاعات بیشتری راجب نحوه کار باهاش هست و خود ابزار هم از help ساپورت میکنه.
اگه هم باگی داشت یا قابلیتی بود که دوست داشتین بهش اضافه کنین ایشو بزنین و مشارکت کنین❤️
@ever_code