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

نام تاپیک: کش کردن Dll

  1. #1
    کاربر دائمی آواتار hamid_200611
    تاریخ عضویت
    تیر 1387
    محل زندگی
    دلیجان
    سن
    32
    پست
    122

    Question کش کردن Dll

    سلام خدمت دوستان تا جایی که من فهمیدم وقتی که ما .NET Farm work را نصب می کنیم Dll های مورد نیاز برای کار به صورت Assembly Cache در می آیند اگر از ویندوز Xp استفاده می کنید می تونید آن ها را در کنترل پنل و قسمت Administrative Tools وMicrosoft .NET Framework 2.0 Configuration و با باز کردن تب Assembly Cache اون ها رو ببنید و همونطور که خودتون بهتر می دونید بعد از نصب کامپوننت های معروف مثل Devexpress یا Telerik اون ها DLL های خودشون و به همون قسمتی که گفتم به صورت کش در می آورند به نظرمن این کار باعث بالا رفتن سرعت برنامه می شود .
    حالا سوال من اینه که چه طور ما DLL ها مونو به این شکل در بیاوریم مثلا رو سیستم کلاینت تا علاوه بر سرعت امنیت کمی هم پیدا کنه و دومین سوال اینه که آیا می شه این Dll ها رو از حالت کش خارج کرد.
    البته اگه خودم زوتر به نتیجه رسیدم می گم.

  2. #2
    کاربر دائمی آواتار hamid_200611
    تاریخ عضویت
    تیر 1387
    محل زندگی
    دلیجان
    سن
    32
    پست
    122

    نقل قول: کش کردن Dll

    با سلام مجدد من راه های کش کردن رو پیدا کردم:

    1. The Windows Installer 2.0
    2. The command line tool GACUtil.exe
    3. The Windows Shell namespace extension implemented in SHFusion.dll
    4. The .NET Framework Configuration Administrative tool
    5. Programmatically accessing the GAC through APIs

    GAC:Global Assembly Cache
    آخرین ویرایش به وسیله hamid_200611 : یک شنبه 09 فروردین 1388 در 12:24 عصر

  3. #3
    کاربر دائمی آواتار hamid_200611
    تاریخ عضویت
    تیر 1387
    محل زندگی
    دلیجان
    سن
    32
    پست
    122

    نقل قول: کش کردن Dll

    خوب می خواهم روش کارو بگم:
    1-اول باید یه پروژه ClassLibrary ایجاد کنید سورستونو وارد کنید (خوب می دونید این یه فایل Dll بتون میده دیگه)
    2- خوب حالا نیاز به strong name هستش .برای تولید این strong name یا cryptographic key از Prompt خود VS استغاده و کد زیرو بنویسید
    sn -k "C:\[DirectoryToPlaceKey]\[KeyName].snk"
    DirectoryToPlaceKey:فرقی نمی کنه چه آدرسی بدید.
    3-حالا که کلید رو ساخت باید Dll رو به اون ربط بدید.برای این کار در فایل AssemblyInfo.vb در کد VB ویا AssemblyInfo.CS در کد سی شارپ دستور زیر رو اضافه کنید.
    <Assembly: AssemblyKeyFile("آدرس فایل کلید")> برای VB
    [assembly: AssemblyKeyFile("آدرس فایل کلید")] برای سی شارپ
    4-حالا ClassLibrary رو Build کنید.
    5-دستور زیر رو در Prompt وارد کنید:
    gacutil -I "آدرس فایل\اسم فایل.dll"


  4. #4
    کاربر دائمی آواتار hamid_200611
    تاریخ عضویت
    تیر 1387
    محل زندگی
    دلیجان
    سن
    32
    پست
    122

    نقل قول: کش کردن Dll

    یه بار دیگه دستورات رو می نویسم:
    sn -k "C:\[DirectoryToPlaceKey]\[KeyName].snk"
    <Assembly: AssemblyKeyFile("C:\GACDemo\GACKey.snk")>
    [assembly: AssemblyKeyFile("C:\GACDemo\GACKey.snk")]
    gacutil -I "C:\[PathToBinDirectoryInVSProject]\gac.dll"


  5. #5

  6. #6

    نقل قول: کش کردن Dll

    سلام خدمت همه ي دوستان
    اگه من بخواهم برنامه اي بنويسم كه تمام dllهاي موجود در ويندوز را نمايش بدهد و مشخصات ان مثل مسير و غيره را نمايش بده بايد چه جوري بنويسم؟
    منتظ راهنمايي شما دوستان هستم
    مچكرم

  7. #7
    کاربر دائمی آواتار hamid_200611
    تاریخ عضویت
    تیر 1387
    محل زندگی
    دلیجان
    سن
    32
    پست
    122

    نقل قول: کش کردن Dll

    نکته ای که هست اینه که همه می دونن وقتی ما از یه DLL استفاده می کنیم باید اون dll در کنار فایل Exe برنامه باشه ولی با این کار دیگه لازم نیست

  8. #8

    نقل قول: کش کردن Dll

    نقل قول نوشته شده توسط hamid_200611 مشاهده تاپیک
    نکته ای که هست اینه که همه می دونن وقتی ما از یه DLL استفاده می کنیم باید اون dll در کنار فایل Exe برنامه باشه ولی با این کار دیگه لازم نیست
    من هنوز راه حل شما رو تست نكردم اما دنبال بودم DLL ها جايي غير از مسير فايل تجرايي باشه

    سؤال: چطوري Setup براي اين روش بسازيم ؟
    منظورم اينكه وقت كپي به ماشين مقصد بايد اين DLL ها در چه پوشه اي كپي بشه ؟

  9. #9
    کاربر دائمی آواتار mom alone
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    ایران
    سن
    36
    پست
    196

    نقل قول: کش کردن Dll

    اینجوری که من فهمیدم شما یک سورس رو به dll تبدیل کردید و سپس اون کش کردید

    اگه ما بخاهیم یه dll آماده که از اون استفاده می کنیم رو کش کنیم
    باید چیکار کنیم
    ممنون میشم اگه کمک کنید

  10. #10
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    تهران
    پست
    123

    نقل قول: کش کردن Dll

    ترتيب Load شدن assembly ها در .net:
    - پوشه اي كه برنامه از داخل آن اجرا مي شود
    - آدرسي كه در App.Config براي assembly وارد مي شود
    - GAC يا Global Assembly Cache

    در صورتي كه dll را به GAC اضافه كنيد، اين dll براي تمامي برنامه ها مشترك بوده و در computer به نوعي register‌ مي شوند. كش كردن ارتباطي با سرعت ندارد، تنها براي versioning و distribution استفاده مي شود.
    براي GAC كردن لازم است ابتدا assembly را sign كنيد، كه از طريق visual studio قابل انجام است (بر روي پروژه right click كنيد، properties را انتخاب كرده و به قسمت signing برويد و assembly را sign كنيد)
    براي عمل GAC كردن مي توان از GACUtil.exe استفاده كرد و يا به پوشه c:\WINDOWS\assembly رفته و dll مورد نظر را داخل آن drag كنيد

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

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