خیلی وقت‌ها پیش میاد که میخوایم ببینیم یه متغیر کجا تعریف شده، وقتی از Go to definition استفاده می‌کنیم به جای اینکه بره سراغ محل تعریفش، یه فایلی باز میکنه که توی عنوان فایل نوشته from metadata

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

حالا چند تا دلیل میتونه باعثش شده باشه، یکی از اصلی ترین دلایلی که من زیاد باهاش برخوردم این بوده که به جای پروژه، به dll لینک داده شده.

یعنی فرض کنین شما یه Solution دارین با 3 تا پروژه Model ، View و Cotroller. حالا میخواین توی پروژه View به Controller لینک یا همون رفرنس بدین و ازش استفاده کنین.

اتفاقی که خیلی وقت‌ها میفته اینه که بعضی‌ها به جای اینکه به خود پروژه Cotroller رفرنس بدن، به فایل خروجیش که یه DLL هست رفرنس میدن و خب طبیعتا تو این حالت ویژوال استودیو به فایل DLL دسترسی داره که سورس کد داخلش نیست.

برای رفع این مشکل کافیه وقتی Add Reference میکنیم به جای آدرس DLL به پروژه رفرنس بدیم. به این صورت:

کافیه از این قسمت تیک مربوط به پروژه موردنظر رو بزنیم تا هم رفرنسش اضافه بشه هم ویژوال استودیو به کد اصلی دسترسی داشته باشه

البته که این آموزش برای زبان C#.net نوشته شده ولی خب مفهومش برای حالت کلی همینه.