رفع خطای "Could not load file or assembly or one of its dependencies"


۲ سال پیش یکشنبه ۱۰ مرداد ۱۳۹۵ ساعت ۲:۱۲

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

اگر فایل اسمبلی مشخص شده در خطا از فایل‌های مرتبط با یک پکیج ناگت بود، برای مشاهده نسخه‌های مختلف استفاده شده از آن پکیج در پروژه‌های solution جاری کافیست تا دستور زیر را در Package Manager Console اجرا کنید.

Get-Project -all | ForEach-Object {Get-Package -ProjectName $_.Name -Filter YourPackageName}
با توجه با اینکه پکیجی به نام Microsoft.AspNet.Mvc شامل فایل اسمبلی System.Web.Mvc هست بصورت زیر از دستور بالا استفاده‌می‌کنیم.

حالا پروژه‌ها و تفاوت نسخه‌های پکیج‌ها مشخص شده و کافیست نسخه‌های آنها را با توجه به شرایط پروژه‌هاتون تغییر بدید.
برای مثال اگر پروژه‌های شما با تغییرات آخرین نسخه آن پکیج مشکلی نداشته باشند می‌توانید با دستور زیر نسخه‌ی پکیج استفاده شده در تمام پروژه‌هاتون رو به آخرین نسخه بروز کنید.

Update-Package Microsoft.AspNet.Mvc
برای اطلاعات بیشتر در رابطه با بروز رسانی پکیج‌های Nuget لینک A quick tutorial on the Update-Package command را مطالعه کنید.
و در نهایت اگر فایل مشخص شده در ارور مربوط به هیچ یک از Nuget های نصب شده نبود، می‌توانید با دستور زیر پروژه‌هایی که از نسخه‌های مختلف آن فایل استفاده کردند را پیدا کرده و سپس نسخه فایل اسمبلی استفاده شده در آنها را یکسان کنید.

Get-ChildItem -Filter System.Web.Mvc.dll -Recurse | Select-Object -ExpandProperty VersionInfo

* من از ایمیل شما برای نمایش تصویر شما توسط سرویس gravatar استفاده خواهم کرد. من هم مثل شما از اسپم متنفرم.