मैं GAC में .NET DLL फ़ाइल कैसे पंजीकृत करूं?


83

मैंने एक .NET .DLLफ़ाइल बनाई है , जिसे मैं GAC में पंजीकृत करना चाहता हूँ ।

मैंने Windows Server 2003 कमांड प्रॉम्प्ट में इस कमांड का उपयोग किया है :

C:\"Path of dll"\>gacutil /i dllname.dll
'gacutil' is not recognized as an internal or external command,
operable program or batch file.

यह कहता है कि रास्ता सही नहीं है।

क्या मुझे .NET cmd प्रॉम्प्ट में इसका उपयोग करने की आवश्यकता है? अगर ऐसा है, तो मैं .NET cmd प्रॉम्प्ट का पता लगाने में सक्षम नहीं हूं।


सटीक त्रुटि संदेश क्या था? क्या यह पथ का उल्लेख है gacutil.exeया करने के लिए dllname.dll?
उउदद्ल्र्र्र्स

जवाबों:


102

आप gacutilउपकरण का उपयोग करके ऐसा कर सकते हैं । अपने सरलतम रूप में:

gacutil /i yourdll.dll

आप प्रोग्राम के तहत स्टार्ट मेनू में विजुअल स्टूडियो कमांड प्रॉम्प्ट -> विजुअल स्टूडियो -> विजुअल स्टूडियो टूल्स पाते हैं ।


7
यदि आपके पास विज़ुअल स्टूडियो नहीं है, तो आप gacutil.exe को C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 टूल \ कम से कम एक्सेस कर सकते हैं, यह वह जगह है जहाँ यह एक Win2R2 सर्वर पर मौजूद है ।
sonyisda1

मेरे पास ऐसे कार्य हैं जिनके लिए उन्नयन की आवश्यकता है, इसलिए उस dll को विधानसभा में रखने से विशेषाधिकार प्राप्त होंगे? क्या एक गैर-व्यवस्थापक उपयोगकर्ता उन कार्यों को ऊंचाई में चलाने में सक्षम होगा?
सुसरला निखिलेश

मेरी मशीन में यह C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v8.1A \ bin \ NETFX 4.5.1 टूल्स के तहत था - यह भी आवश्यक है कि मैं कमांड को एलिवेटेड कमांड लाइन के माध्यम से चलाता हूं।
नीमनीम

35

आपको ज़रूरत होगी:

  • अपनी विधानसभा का मजबूत नाम (विजुअल स्टूडियो, प्रोजेक्ट प्रॉपर्टीज़, साइनिंग टैब, असेंबली साइन करें)
  • अपनी बिल्ड ईवेंट्स (प्रोजेक्ट प्रॉपर्टीज़, बिल्ड ईवेंट्स टैब, पोस्ट-बिल्ड कमांड लाइन) को बदल दें
   cd C: \ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin
   gacutil.exe / i "$ (TargetPath)" / f / nologo
   gacutil / l "$ (TargetName)" / nologo

अब, हर बार जब आप अपनी परियोजना का निर्माण करते हैं, तो इसे GAC पर स्थापित किया जाएगा।


विजुअल स्टूडियो 2017 में, आपको वीएस को प्रशासक के रूप में चलाना होगा या गैकुटिल अनुमति की कमी के लिए विफल रहता है।
नातान

19

C:\Windows\assemblyWindows Explorer का उपयोग करके DLL फ़ाइल को केवल फ़ोल्डर में खींचें और छोड़ें ।

चेतावनी:

.NET फ्रेमवर्क के पिछले संस्करणों में, Shfusion.dll विंडोज शेल एक्सटेंशन आपको असेंबली को फाइल एक्सप्लोरर पर खींचकर स्थापित करने देता है। .NET फ्रेमवर्क 4 से शुरू होकर, Shfusion.dll अप्रचलित है।

स्रोत: कैसे करें: वैश्विक असेंबली कैश में एक असेंबली स्थापित करें


2
आपको ड्रैग-एन-ड्रॉप के लिए "रन अस" के रूप में एक व्यवस्थापक खाते के साथ लॉग इन करना होगा।
सलमान सिद्दीकी

6
इसका मेरे अंत पर कोई प्रभाव नहीं है - पुस्तकालय को जोड़ा नहीं गया है, कोई त्रुटि संदेश नहीं है। मैं एक व्यवस्थापक खाते का उपयोग कर रहा हूं।

8
".NET फ्रेमवर्क के पहले संस्करणों में, Shfusion.dll विंडोज शेल एक्सटेंशन ने आपको फ़ाइल एक्सप्लोरर में ड्रैग करके असेंबली स्थापित करने में सक्षम किया। .NET फ्रेमवर्क 4 के साथ शुरुआत करते हुए, Shfusion.dll अप्रचलित है।" msdn.microsoft.com/en-us/library/dkkx7f79(v=vs.110).aspx
njplumridge

"ड्रैग एंड ड्रॉप" पर जोर - कॉपी और पेस्ट काम नहीं करता
टोड

14

विकिपीडिया से :

gacutil.exe GAC के साथ काम करने के लिए उपयोग की जाने वाली .NET उपयोगिता है ।

कोई कमांड का उपयोग करके GAC में साझा असेंबली की उपलब्धता की जांच कर सकता है :

gacutil.exe /l "assemblyName"

कोई कमांड का उपयोग करके GAC में साझा असेंबली को पंजीकृत कर सकता है :

gacutil.exe /i "assemblyName"

या GUI का उपयोग करते हुए असेंबली फ़ाइल को निम्न स्थान पर छोड़ कर:

%windir%\assembly\

यदि आप /?ध्वज का उपयोग करते हैं , तो इस उपयोगिता के अन्य विकल्पों का संक्षेप में वर्णन किया जाएगा :

gacutil.exe /?

GacUtil .NET के साथ नहीं आता है। शेल ड्रॉप-एंड-ड्रॉप हेल्पर जो असेंबलियों को पंजीकृत करने के लिए ड्रैगिंग-एंड-ड्रॉपिंग की अनुमति देता था अब काम नहीं करता है।
इयान बॉयड

13

ये प्रतिक्रियाएं आपको यह नहीं बताती हैं कि जिस तरह से जीएसीटील सी: \ विन्डोज़ \ माइक्रोसॉफ्ट.नेट \ फ्रेमवर्क \ v1.1 * में रहता है।

मैं अपने v2.0 फ़ोल्डर में नहीं था। लेकिन मैंने DLL को C: \ WINDOWS \ असेंबली फ़ोल्डर में खींचने और छोड़ने की कोशिश की, जैसा कि पहले यहाँ बताया गया था और यह आसान था और जब तक यह .NET लाइब्रेरी है, तब तक काम करता है। मैंने COM लाइब्रेरी की भी कोशिश की और यह एक त्रुटि के साथ विफल हो गया, जो कि एक विधानसभा प्रकटन की उम्मीद कर रहा था। मुझे पता है कि यह सवाल यहाँ नहीं था, लेकिन मुझे लगा कि मैं यह उल्लेख करूँगा कि अगर किसी को पता चलता है कि वे इसे जोड़ नहीं सकते हैं, तो ऐसा हो सकता है।

टॉम


1
ये प्रतिक्रियाएं आपको नहीं बताती हैं कि gacutilविंडोज के साथ नहीं आता है।
इयान बोयड

5

GACView का प्रयास करें यदि आपको कमांड प्रॉम्प्ट का डर है तो ।

आपने DOS में PATH को ठीक से सेट नहीं किया है। आपको उस मार्ग को इंगित करने की आवश्यकता है जहां Gacutil DOS में इसका उपयोग करने का संकल्प करता है।


4
  • V2012 के लिए डेवलपर कमांड प्रॉम्प्ट चलाएं या आपके सिस्टम में इंस्टॉल किया गया कोई भी संस्करण

  • gacutil / i pathofDll

  • दर्ज

किया हुआ!!!


उल्लेख 'डेवलपर' कमांड प्रॉम्प्ट, अच्छा! के रूप में
gacutil

3

Aso ने कहा, बस विधानसभा को C: \ windows \ विधानसभा फ़ोल्डर में खींचें और छोड़ें। यह काम करता हैं।


"ड्रैग एंड ड्रॉप" पर जोर - कॉपी और पेस्ट काम नहीं करता
टोड

1
खींचें और छोड़ें अब काम नहीं करता है। शेल फ्यूजन हैंडलर को लंबे समय से हटा दिया गया है।
इयान बॉयड

1

उपरोक्त समाधान अद्भुत लग रहे हैं। हालाँकि, सरल होने के लिए, आप सभी की जरूरत है मुझे लगता है कि विधानसभा का नाम दर्ज करने के लिए इसके पूर्ण पथ के साथ है:

gacutil -i C:\MyDlls\GacDeployedAssemblies\dllname.dll

C: \ MyDlls \ GacDeployedAssemblies पर ध्यान देना


1

विंडोज़ पर 7 gacutil.exe (GAC में असेंबली लगाने के लिए) और sn.exe (असेंबली की विशिष्टता सुनिश्चित करने के लिए) C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin में रहता है

फिर नीचे दिए गए आदेश को निष्पादित करने के लिए नीचे दिए गए दिखाए गए अनुसार गैसीलिट के रास्ते पर जाएं

C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin> gacutil / i "GAC में डालने के लिए आपकी असेंबली का पथ बदलें"


0

से Publishटैब पर जाएँ application Files

फिर, क्लिक करें unnecessary files

उसके बाद, बहिष्कृत प्रेस करें ok

अंत में, प्रोजेक्ट फ़ाइलों का निर्माण करें और प्रोजेक्ट चलाएं।


0

मैंने टिप्पणियों में सब कुछ करने की कोशिश की और यह काम नहीं किया। इसलिए मैंने gacutil /i "path to my dll"पॉवरशेल से किया और यह काम कर गया।

जब आप कॉपी पथ का विकल्प प्राप्त करने के लिए विंडोज एक्सप्लोरर में एक फ़ाइल पर राइट-क्लिक करते हैं, तो शिफ्ट दबाने की चाल याद रखें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.