TGViewer
EverCode EverCode @ever_code · 253 subscribers
Post #119 1.64K
تو سلوشن‌های بزرگ دات نت، مدیریت ورژن پکیج‌هامون میتونه سخت باشه. پکیج‌هایی که توی چندتا پروژه استفاده شده مثل
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
GitHub GitHub - PureJoyMind/CPMGen: A command-line tool that helps you quickly migrate large .NET solutions to Central Package Management… A command-line tool that helps you quickly migrate large .NET solutions to Central Package Management (CPM) - PureJoyMind/CPMGen
  • ❤ 6
  • 👍 1
More from @ever_code
  1. Oct 10, 2026اولین بار که با مفهوم سیستم عامل بصورت درست آشنا شدم، دوره ی خیلی قدیمی جادی برای LPIC 1 ب…
  2. Oct 9, 2026https://claude.ai/artifact/SQQRuCYtcH9RyBY1ZfWaXg برای ادامه دادن مبحث shader programming…
  3. Oct 9, 2026بیاین یکم بیشتر روی گرافیک تمرکز کنیم. این تصویر: https://www.shadertoy.com/embed/XsXXDn?g…
  4. Oct 9, 2026واقعا خیلی زیبا درس میده بنظرم
  5. Oct 9, 2026یه سری شاخه های کامپیوتر دقیقا اون جاهایی هستن که ما میگفتیم مگه ریاضی کجا تو زندگی به درد…
  6. Oct 8, 2026شرکت Stripe چند وقتی میشه که به یکی از شرکت های مورد علاقم تبدیل شده. یکی از بزرگترین شرکت…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →