چگونه تمام پروژه‌های دات‌نت را همزمان به‌روز کنیم؟

1/22/2025 MVC Core
28

من مشکلی که داشتم این بود که هر بار که یک ورژن جدید از دات نت میاد باید آن را روی سیستم نصب کنم و بعد پروژه های قدقمی را با داتنت جدید آپدیت کنم خوب اینجه یکی سری ویژگی ها اضافه خواهد شد یک سری ویژگس ها کم خواهد شد و همچنان این مشکل پا برجاست 
ولی ک مرحله راحت این است که بتوانم پکیجهای دات نت را با یک دستور  cli به روز کنم 

اگر شما هم در پروژه‌های خود با چندین فایل و پروژه دات‌نت (.NET) کار می‌کنید، احتمالاً به‌روزرسانی تک‌تک پروژه‌ها یک چالش بزرگ است. در این پست، راه‌حلی سریع و کارآمد با استفاده از PowerShell برای آپدیت همزمان همه پروژه‌ها ارائه می‌دهیم.

 

مرحله 1: نصب ابزار مورد نیاز

ابتدا باید ابزار dotnet-outdated-tool را نصب کنید. این ابزار برای بررسی و به‌روزرسانی پکیج‌های NuGet پروژه‌های دات‌نت استفاده می‌شود. دستور نصب این ابزار به‌صورت زیر است:

dotnet tool install --global dotnet-outdated-tool

مرحله 2: ایجاد یک اسکریپت برای به‌روزرسانی

برای اینکه تمام پروژه‌ها را به‌صورت همزمان آپدیت کنید، از یک اسکریپت PowerShell استفاده می‌کنیم. به جای اینکه پروژه‌ها را یکی‌یکی به‌روزرسانی کنید، این اسکریپت به‌طور خودکار تمامی فایل‌های .csproj را شناسایی و به‌روزرسانی می‌کند.

  1. در روت پروژه، یک فایل با نام Update-NuGet.ps1 ایجاد کنید.
  2. کد زیر را در فایل قرار دهید:

 

# Get all .csproj files in the current directory and subdirectories
Get-ChildItem -Recurse -Filter *.csproj | ForEach-Object {
    $project = $_.FullName
    Write-Host "Updating packages for project: $project"
    dotnet outdated $project --upgrade
}

Write-Host "All projects updated!"

مرحله 3: اجرای اسکریپت

بعد از ذخیره فایل، کافی است دستور زیر را در پوشه‌ای که فایل Update-NuGet.ps1 قرار دارد، اجرا کنید:

./Update-NuGet.ps1

این دستور تمامی پروژه‌های موجود در مسیر و زیرپوشه‌ها را اسکن کرده و پکیج‌های آن‌ها را به‌روزرسانی می‌کند. در پایان، پیام "All projects updated!" نمایش داده می‌شود.

مزایای این روش

 

  1. صرفه‌جویی در زمان: نیازی به ورود به تک‌تک پوشه‌ها و اجرای دستی دستورات ندارید.
  2. خودکارسازی فرآیند: مدیریت چندین پروژه به‌طور یکجا انجام می‌شود.
  3. سادگی و کارآمدی: فقط با یک دستور، تمام پروژه‌ها آپدیت خواهند شد.