نمایش نتایج 1 تا 6 از 6

نام تاپیک: آیا امکان خواندن اسمبلی ها از یک پوشه دیگر به جای پوشه Debug وجود دارد ؟

  1. #1

    آیا امکان خواندن اسمبلی ها از یک پوشه دیگر به جای پوشه Debug وجود دارد ؟

    با سلام
    من تعدادی فایل و فولدر مربوط به ابزار GeckoFX رو تو پوشه ی Debug ریختم که تو برنامم ازش استفاده میکنم
    حالا میخوام ببینم میشه بجای پوشه ی debug از یک فولدر دیگه بخونم ؟
    ممنون میشم پاسخ بدید


  2. #2

    نقل قول: آیا امکان خواندن اسمبلی ها از یک پوشه ی دیگر به جای پوشه ی Debug وجود دارد ؟

    با سلام
    برای اینکه بتونی تو سی شارپ از یک پوشه دیگر اسمبلی ها رو لود کنی یکی از راه حلها این است که بیای و رویداد AssemblyResolve رو خودت بنویسی.
    مثلا :

    var otherFolderDlls = new DirectoryInfo(companyFolder).GetFiles("*.dll");

    AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>
    {
    var dll = otherFolderDlls.FirstOrDefault(fi => fi.Name == args.Name);
    if (dll == null)
    {
    return null;
    }

    return Assembly.LoadFrom(dll.FullName);
    };


    توجه داشته باشید که با توجه به نوع کوئری که من نوشتم برای لیست کردن اسمبلی ها سربار زیادی برای برنامه خواهد داشت.
    در ضمن می توانید یک دیکشنری هم از اسامی و اسمبلی هایی که قبلاً لود کرده اید داشته باشید که ابتدا در آن جست و جو نمایید اگر یافت نشد اقدام به بارگزاری اسمبلی و قراردادن در دیکشنری و نهایتا بازگرداندن اسمبلی لود شده نمایید.
    نکته مهم دیگر استفاده از Assembly.LoadFrom هست که اگر از Assembly.Load استفاده نمایید فقط باعث ایجاد لوپ بین دیزالور و لودر خواهد شد.

    برای اینکه کامل با مبحث آشنا بشی می توانی از سورس های SharpDevelop کمک بگیری که بسیار عالی کار شده.

  3. #3
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    30
    پست
    7,892

    نقل قول: آیا امکان خواندن اسمبلی ها از یک پوشه ی دیگر به جای پوشه ی Debug وجود دارد ؟

    مگه میشه برنامه بدون رفرنس کردن لود کرد؟
    کلاس هاش شناسایی نمیشه در این صورت.


  4. #4

    نقل قول: آیا امکان خواندن اسمبلی ها از یک پوشه ی دیگر به جای پوشه ی Debug وجود دارد ؟

    نقل قول نوشته شده توسط fakhravari مشاهده تاپیک
    مگه میشه برنامه بدون رفرنس کردن لود کرد؟
    کلاس هاش شناسایی نمیشه در این صورت.

    بله میشه.مثلاً می خواهید یک ساختار برای پلاگین نوشتن ایجاد کنید تو یک اسمبلی مرجع کاری که می کنی یک کلاس پایه تعریف می کنی و رفرنس می کنی اینطوری از امکانات کلاس پایه استفاده می کنید.زمانی که پلاگینها رو نوشتید به صورت library در یک پوشه دیگر قرار می دهید و با تابع assembly.load اقدام به بارگیری انها می کنید. به راحتی با استفاده از وراثت می توانید از امکانات اضافه شده به برنامه استفاده نمایید.
    اما فکر کنم این دوست ما هدفش اینه که در هنگام اجرا فقط فایل اجرایی در پوشه ای که کاربر به ان دسترسی دارد قرار بگیرد و الباقی ملحقات در مکانی دیگر باشد.
    کلا کاربردهای زیادی داره اما برای پروژه های بزرگ که می شه با تکنیک هایی هزینه نگهداری و گسترش و ... رو کاهش داد.
    می توانید در زیر هم روشهای کار و هم توضیحات تکمیلی رو بخونید
    https://msdn.microsoft.com/en-us/library/ms173101.aspx

  5. #5

    نقل قول: آیا امکان خواندن اسمبلی ها از یک پوشه ی دیگر به جای پوشه ی Debug وجود دارد ؟

    دوست عزیز ممنون از پاسخ شما
    راستش من متوجه نشدم که چی شد

    من الان فقط میدونم که یک پوشه حاوی کلی فایل و فولدر دارم که باید در زمان اجرای برنامه تو پوشه ی Debug باشه
    حالا من میخوام جهت نظم دادن به پوشه و عدم تداخل فایل هام همه ی اونارو بریزم تو یک پوشه و اون پوشه را initialize کنم
    ممنون میشم کمک کنید

  6. #6

    نقل قول: آیا امکان خواندن اسمبلی ها از یک پوشه ی دیگر به جای پوشه ی Debug وجود دارد ؟

    با توجه به اینکه فقط می خواهید نظم بدهید راه حل زیر منطقی خواهد بود :

    <configuration>
    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <probing privatePath="bin;bin2\subbin;bin3"/>
    </assemblyBinding>
    </runtime>
    </configuration>

    لینک منبع

تاپیک های مشابه

  1. حرفه ای: آیا امکان بررسی packet های enode شده که توسط wireshark گزارش شده اند وجود دارد؟
    نوشته شده توسط mohammad reza beizavi در بخش شبکه و Networking‌
    پاسخ: 1
    آخرین پست: شنبه 11 بهمن 1393, 13:40 عصر
  2. پاسخ: 4
    آخرین پست: شنبه 12 بهمن 1392, 15:07 عصر
  3. سوال: امکان تکراری بودن شماره سریال CPU و motherboard در لپ تاپ ها وجود دارد و راه حلش چیست؟
    نوشته شده توسط baharii در بخش امنیت در نرم افزار و برنامه نویسی
    پاسخ: 7
    آخرین پست: سه شنبه 04 مرداد 1390, 12:12 عصر
  4. سوال: آیا امکان فراخوانی و اجرای توابع موجود در فایل های جاوا اسکریپت ادیتورها وجود دارد؟
    نوشته شده توسط keykan در بخش JavaScript و Framework های مبتنی بر آن
    پاسخ: 0
    آخرین پست: چهارشنبه 11 اسفند 1389, 19:01 عصر
  5. آیا امکان مخفی کردن کنسول در برنامه های اسمبلی هست؟
    نوشته شده توسط amir001 در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 3
    آخرین پست: پنج شنبه 14 بهمن 1389, 03:10 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •