আমার সাথে একটি প্যাকেজ রয়েছে যার সাথে সরাসরি জিএসি-তে সমাহারগুলি ইনস্টল করা হয় (উদাহরণস্বরূপ% উইন্ডোজ% / এসেম্বলিতে গভীরতর কোথাও)।
আমি কীভাবে জিএসি থেকে সাধারণ ফাইল সিস্টেমে আসল অ্যাসেমব্লিকে (ডিএলএল) বাজেয়াপ্ত করব?
ধন্যবাদ।
আমার সাথে একটি প্যাকেজ রয়েছে যার সাথে সরাসরি জিএসি-তে সমাহারগুলি ইনস্টল করা হয় (উদাহরণস্বরূপ% উইন্ডোজ% / এসেম্বলিতে গভীরতর কোথাও)।
আমি কীভাবে জিএসি থেকে সাধারণ ফাইল সিস্টেমে আসল অ্যাসেমব্লিকে (ডিএলএল) বাজেয়াপ্ত করব?
ধন্যবাদ।
উত্তর:
আমি এই নিবন্ধের পরামর্শটি জিএসি থেকে একটি সমাবেশ পেতে ব্যবহার করেছি ।
জিএসি থেকে ডিএলএল পান
একবার জিএসিতে মোতায়েন করা ডিএলএলগুলি (সাধারণত সি: \ উইন্ডোজ \ অ্যাসেমব্লিতে অবস্থিত) সাধারণ ডিএলএল ফাইল হিসাবে দেখা বা ব্যবহার করা যায় না। এগুলিকে সরাসরি ভিএস প্রকল্প থেকে উল্লেখ করা যায় না। বিকাশকারীরা সাধারণত মূল ডিএলএল ফাইলের একটি অনুলিপি রাখেন এবং প্রকল্পে এটি ডেভলপমেন্ট (ডিজাইন) সময়ে উল্লেখ করেন যা প্রকল্পের রান-টাইমের সময় জিএসি থেকে অ্যাসেম্বলি ব্যবহার করে।
ফাঁসির সময় (রান-টাইম) যদি সমাবেশে জিইসি-তে স্বাক্ষর করা এবং মোতায়েনের বিষয়টি পাওয়া যায় তবে সিএলআর স্বয়ংক্রিয়ভাবে ভিএস-তে ডিজাইনের সময় ডিএলএল পরিবর্তে জিএসি থেকে অ্যাসেম্বলিকে তুলে নিয়ে যায় বিকাশকারী মূল ডিএলএল মুছে ফেলেছে বা কোনও কারণে এটি না রাখার ক্ষেত্রে, জিএসি থেকে ডিএলএল ফাইল পাওয়ার একটি উপায় আছে। জিএসি থেকে ডিএলএল অনুলিপি করতে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন
Regsvr32 / u সি চালান: I উইন্ডোস \ মাইক্রোসফট. নেট \ ফ্রেমওয়ার্ক \ v2.0.50727 f shfusion.dll
- shfusion.dll হ'ল এক্সপ্লোরার এক্সটেনশন ডিএলএল যা জিএসি ফোল্ডারে আলাদা স্বতন্ত্র চেহারা দেয়। এই ফাইলটিকে নিবন্ধভুক্ত করা অ্যাসেম্বলি ক্যাশ ভিউয়ারকে সরিয়ে ফেলবে এবং জিএসি ফোল্ডারটি এক্সপ্লোরারটিতে কোনও সাধারণ ফোল্ডার হিসাবে দৃশ্যমান হবে।
"% উইন্ডির% \ সমাবেশ \ GAC_MSIL" খুলুন।
আপনার ডিএলএল সন্ধান করতে গভীরভাবে আপনার ডিএলএল ফোল্ডারে ব্রাউজ করুন।
আপনার হার্ড ডিস্কের কোথাও ডিএলএল অনুলিপি করুন এবং সেখান থেকে আপনার প্রকল্পে এটি উল্লেখ করুন
Shfusion.dll ফাইলটি পুনরায় নিবন্ধন করতে এবং জিএসি-র মূল স্বতন্ত্র দৃষ্টিভঙ্গি ফিরে পেতে "regsvr32% উইন্ডির% ir Microsoft.NET \ ফ্রেমওয়ার্ক \ <। নেট সংস্করণ ডিরেক্টরি> f shfusion.dll" চালান।
shfusion.dll
পরে DllInstall()
প্রবেশের বিন্দুটি সমর্থন করে না । এই বিকল্পটি ছাড়াই সফলভাবে উপাদানটিকে পুনরায় নিবন্ধন করতে দেয়। regsvr32
/i
এখানে বর্ণিত পদ্ধতিটি খুব সহজ:
নিবন্ধ থেকে সংক্ষিপ্তসার:
\\YourServer\C$\Windows\Assembly
)কমান্ড প্রম্পটটি খুলুন এবং টাইপ করুন:
cd c:\windows\assembly\GAC_MSIL
xcopy . C:\GacDump /s /y
এটি পুরো জিএসি-এর ডাম্প দেয়
উপভোগ করুন!
হ্যাঁ.
DisableCacheViewer রেজিস্ট্রি কী যুক্ত করুন
এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ ফিউশন under এর অধীনে ডিসিয়েবল ক্যাচিভিউয়ার নাম সহ একটি নতুন ডাবর কী তৈরি করুন এবং এর [DWORD] মান 1 তে সেট করুন।
উইন্ডোজ এক্সপ্লোরারে অ্যাসেম্বলি ফোল্ডারে ফিরে যান এবং এটি সাধারণ ফাইল সিস্টেম ভিউ হবে।
আমি মনে করি সবচেয়ে সহজ উপায় হ'ল ডেভিডের মতো কমান্ড লাইনের মাধ্যমে এটি করা। একমাত্র কৌশলটি .dll কেবল সি: \ উইন্ডোজ \ অ্যাসেমব্লিতে নেই। আপনাকে সি: \ উইন্ডোজ \ অ্যাসেম্বলি \ জিএসি \ [ASSEMBLY_NAME] \ [VERSION_NUMBER] _ [পাবলিক কে] নেভিগেট করতে হবে। তারপরে আপনি একটি অনুলিপি ব্যবহার করে এটি করতে পারেন:
[ASSEMBLY_NAME] অনুলিপি করুন। dll সি: \ (বা যে কোনও অবস্থান আপনি চান)
আশা করি এইটি কাজ করবে.
আমি যে সহজ উপায়টি পেয়েছি তা হ'ল কমান্ড প্রম্পটটি খুলুন এবং আপনি যে ফোল্ডারটি আপনি চান DLL না পাওয়া পর্যন্ত আপনি উল্লিখিত ফোল্ডারটি ব্রাউজ করেছেন - তারপরে আপনি অনুলিপি কমান্ডটি ব্যবহার করতে পারবেন। উইন্ডোজ এক্সপ্লোরারের এই ফোল্ডারটির একটি "সহায়ক" বিশেষ দৃষ্টিভঙ্গি রয়েছে।
রুন খুলুন তারপর টাইপ করুন %windir%\assembly\GAC_MSIL
, এটি আপনার ডলগুলি ফোল্ডারগুলির ভিউতে খুলবে আপনি তারপরে আপনার dll নামের ফোল্ডারে নেভিগেট করতে পারবেন এবং খুলতে পারবেন, আপনি আপনার dll ফাইলটি খুঁজে পাবেন এবং সহজেই অনুলিপি করতে পারবেন
আমি পাওয়ারশেল জিএসি এর লেখক । পাওয়ারশেল জিএসি দিয়ে আপনি ফোল্ডারের কাঠামোগত পরিবর্তন যেমন জিএসি ইন্টার্নালগুলির উপর নির্ভর না করে জিএসি থেকে অ্যাসেমব্লিগুলি বের করতে পারেন।
Get-GacAssembly SomeCompany* | Get-GacAssemblyFile | Copy-Item -Dest C:\Temp\SomeCompany
এই এমএসডিএন ব্লগ পোস্টটি জিএসি থেকে একটি ডিএলএল উত্তোলনের পৃথক তিনটি উপায় বর্ণনা করে। এখনও দেওয়া পদ্ধতিগুলির একটি দরকারী সংক্ষিপ্তসার।
ভাবেন যে আমি রেজিস্ট্রি সংশোধন না করে বা কমান্ড লাইন, পাওয়ারশেল বা অন্য কোনও প্রোগ্রাম ব্যবহার না করেই জিএসি অভ্যন্তরে দেখার উপায় খুঁজে পেয়েছি:
একটি নতুন শর্টকাট তৈরি করুন (যে কোনও জায়গায়)। তারপরে লক্ষ্য হতে শর্টকাটটি সংশোধন করুন:
%windir%\assembly\GAC_MSIL\System
এই শর্টকাটটি খোলার ফলে আপনাকে জিএসি-র অভ্যন্তরীণ সিস্টেম ফোল্ডারে নিয়ে যাবে (যা প্রত্যেকেরই হওয়া উচিত) এবং আপনাকে একটি উচ্চতর ডিরেক্টরিতে সরিয়ে দেওয়ার এবং তারপরে যে কোনও অন্য ফোল্ডারে ব্রাউজ করার (এবং dll ফাইলগুলি দেখুন ইত্যাদি) এর দুর্দান্ত পার্শ্ব প্রতিক্রিয়া রয়েছে)
আমি এটি উইন্ডোজ 7 এবং উইন্ডোজ সার্ভার 2012 এ পরীক্ষা করেছি।
দ্রষ্টব্য: শর্টকাট তৈরি করার সময় এটি আপনাকে সেই লক্ষ্যটি ব্যবহার করতে দেয় না তবে এটি আপনাকে এডিট করতে দেয়।
উপভোগ করুন!
পাওয়ারশেল স্ক্রিপ্ট থেকে আপনি এটি ব্যবহার করে দেখতে পারেন। আমার কেবল জিএসি-তে সমাবেশের একক সংস্করণ ছিল তাই এটি ঠিক কাজ করেছিল fine
cd "c:\Windows\Microsoft.NET\assembly\GAC_MSIL\"
Get-ChildItem assemblypath -Recurse -Include *.dll | Copy-Item -Destination "c:\folder to copy to"
যেখানে সমাবেশের পথটি ওয়াইল্ডকার্ড ব্যবহার করতে পারে।
অন্য একটি দিক - কেবলমাত্র এমএসআই ফাইলটি আনপ্যাক করুন এবং সেইভাবে গুডিগুলি পান। ইভেন্টের আনইনস্টল থেকে আপনাকে বাঁচায়। । ।
কমান্ড লাইন থেকে অনুলিপি করা অপ্রয়োজনীয়। আমি স্টার্ট উইন্ডো অনুসন্ধান থেকে ডিএলএলের নামে টাইপ করেছি। আমি আরও ফলাফল দেখুন পছন্দ করেছেন। জিএসি-র একজনকে অনুসন্ধান উইন্ডোতে ফিরে আসা হয়েছিল। আমি ডানদিকে এটি ক্লিক করেছি এবং ফাইল অবস্থান খুলুন। এটি সাধারণ উইন্ডোজ এক্সপ্লোরারে খোলা হয়েছে। আমি ফাইলটি অনুলিপি করেছি। আমি উইন্ডোটি বন্ধ করে দিয়েছি। সম্পন্ন.