Mono(gacutil) Mono(gacutil)

gacutil - ابزار مدیریت حافظه پنهان سراسری اسمبلی (GAC)

gacutil [-user] [command] [options]

gacutil ابزاری است که توسط توسعه‌دهندگان برای نصب اسمبلی‌های دارای نسخه در حافظه پنهان سراسری اسمبلی (GAC) سیستم استفاده می‌شود تا بخشی از اسمبلی‌های در دسترس برای تمام برنامه‌ها در زمان اجرا باشند.

توجه داشته باشید که این اسمبلی‌ها مستقیماً در دسترس کامپایلر نیستند. طبق قرارداد، اسمبلی‌ها برای دسترسی کامپایلر باید در یک دایرکتوری جداگانه نیز قرار داده شوند. این کار با دستورالعمل -package در gacutil انجام می‌شود.

این ابزار امکان نصب، حذف و فهرست کردن محتویات حافظه پنهان اسمبلی را فراهم می‌کند.

مسیر GAC نسبت به پیشوند نصب Mono سنجیده می‌شود: mono_prefix/lib/mono.

-i <assembly_path> [-check_refs] [-package NAME] [-root ROOTDIR] [-gacdir GACDIR]

یک اسمبلی را در حافظه پنهان سراسری اسمبلی نصب می‌کند. <assembly_path> نام فایلی است که حاوی مانیفست اسمبلی است.

گزینهٔ -package می‌تواند برای ایجاد یک دایرکتوری در prefix/lib/mono با نام NAME نیز استفاده شود، و یک پیوند نمادین (symlink) از NAME/assembly_name به اسمبلی موجود در GAC ایجاد می‌شود. این ویژگی برای آن است که توسعه‌دهندگان بتوانند به طور هم‌زمان به مجموعه‌ای از کتابخانه‌ها ارجاع دهند.

گزینهٔ -root برای تعیین مقدار «libdir» در یک پیشوند نصب استفاده می‌شود که با پیشوند GAC سیستم متفاوت است. کاربرد معمول آن در automake به صورت "-root $(DESTDIR)$(prefix)/lib" است. برای دسترسی به اسمبلی‌های نصب‌شده در پیشوندی غیر از پیشوند mono، لازم است متغیر محیطی MONO_GAC_PREFIX تنظیم شود.

گزینهٔ -gacdir برای سازگاری با نسخه‌های پیشین قرار داده شده اما برای کدهای جدید توصیه نمی‌شود. به جای آن از گزینهٔ -root استفاده کنید.

گزینهٔ -check_refs برای اطمینان از این است که اسمبلی در حال نصب در GAC، به هیچ اسمبلی فاقد نام قوی (non strong named) ارجاع ندهد. اسمبلی‌هایی که در GAC نصب می‌شوند نباید به اسمبلی‌های بدون نام قوی ارجاع دهند، با این حال این یک بررسی اختیاری است.

-l [assembly_name] [-root ROOTDIR] [-gacdir GACDIR]

محتویات حافظه پنهان سراسری اسمبلی را فهرست می‌کند. زمانی که پارامتر <assembly_name> مشخص شده باشد، تنها اسمبلی‌های منطبق فهرست می‌شوند.

-u <assembly_display_name> [-package NAME] [-root ROOTDIR] [-gacdir GACDIR]

یک اسمبلی را از حافظه پنهان سراسری اسمبلی حذف می‌کند. <assembly_display_name> نام اسمبلی (جزئی یا کامل) برای حذف از حافظه پنهان سراسری اسمبلی است. اگر نامی جزئی مشخص شود، تمام اسمبلی‌های منطبق حذف خواهند شد. بر خلاف گزینهٔ نصب که یک نام فایل می‌گیرد، این گزینه نام اسمبلی را به عنوان آرگومان دریافت می‌کند که شکلی شبیه به این دارد:

MyLibrary.Something, version=1.0.0.0, publicKeyToken=xxxx,culture=neutral

توجه داشته باشید که می‌توانید در خط فرمان از فاصله (space) استفاده کنید و نیازی به قرار دادن آن‌ها در نقل‌قول نیست.

حذف را به صورت حریصانه انجام می‌دهد. اگر تنها یک بخش مانند "MyLibrary.Something" را مشخص کنید، تمام نسخه‌های آن کتابخانه حذف خواهند شد.

-us <assembly_path> [-package NAME] [-root ROOTDIR] [-gacdir GACDIR] یک اسمبلی را با استفاده از نام کامل اسمبلی مشخص‌شده حذف می‌کند. <assembly_path> مسیر یک اسمبلی است. نام کامل از اسمبلی مشخص‌شده استخراج می‌شود و در صورتی که اسمبلی با نام منطبق در GAC وجود داشته باشد، حذف خواهد شد. بر خلاف گزینهٔ -u، این گزینه نام یک فایل را دریافت می‌کند، مانند:

Example: -us myDll.dll

-ul <assembly_list_file> [-package NAME] [-root ROOTDIR] [-gacdir GACDIR] یک یا چند اسمبلی را از حافظه پنهان سراسری اسمبلی حذف می‌کند. <assembly_list_file> مسیر فایلی است که فهرستی از نام‌های اسمبلی را در خطوط جداگانه شامل می‌شود.

Example -ul assembly_list.txt
assembly_list.txt contents:
    assembly1,Version=1.0.0.0,Culture=en,PublicKeyToken=0123456789abcdef
    assembly2,Version=2.0.0.0,Culture=en,PublicKeyToken=0123456789abcdef

در Unix اسمبلی‌ها از دایرکتوری lib محل نصب بارگذاری می‌شوند. اگر `prefix' را روی /usr تنظیم کنید، اسمبلی‌ها در /usr/lib قرار خواهند گرفت. در Windows، اسمبلی‌ها از دایرکتوری محل قرارگیری mono و mint بارگذاری می‌شوند.

/etc/mono/config, ~/.mono/config

فایل پیکربندی زمان اجرای Mono. برای اطلاعات بیشتر صفحهٔ راهنمای mono-config(5) را ببینید.

برای جزئیات بیشتر به http://www.go-mono.com مراجعه کنید

mcs(1),mono(1)