2012-03-27 33 views
9

तो, एक जीत 2008 R2 के कक्षा 64 पर, मैं 6 (छह) Gacutil.exe है सभी विभिन्न में (वी.एस. फ़ोल्डर में लोगों की गिनती नहीं),:मुझे क्या gacutil.exe का उपयोग करना चाहिए?

  1. ग: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ बिन
  2. ग: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ बिन \ x64
  3. ग: \ Program Files (x86) \ माइक्रोसॉफ्ट SDKs \ Windows \ v7 .0 ए \ बिन
  4. सी: \ प्रोग्राम फ़ाइलें (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ x64
  5. ग: \ Program Files (x86) \ माइक्रोसॉफ्ट SDKs \ Windows \ v7.0A \ बिन \ NETFX 4.0 उपकरण
  6. ग: \ Program Files (x86) \ माइक्रोसॉफ्ट SDKs \ Windows \ v7.0A \ बिन \ NETFX 4.0 उपकरण \ x64

प्रश्न हैं:

  1. है x64 संस्करणों व्यवहार में कोई अंतर है?
  2. क्या मुझे v7.0A संस्करणों को अन्य v6.0A पसंद करना चाहिए?
  3. क्या मुझे .NET 4.0 असेंबली के लिए NETFX 4.0 Tools संस्करणों और बाकी के लिए "मानक" संस्करण का उपयोग करना चाहिए?

या, यदि विषय पर कुछ सामान्य प्रकार का लेख है, तो मैं आभारी रहूंगा।

अद्यतन 1.Hans Passant's answer के संबंध में:

  1. gacutil.exeएक "निर्माण, तैनाती, और विन्यास उपकरण (.नेट फ्रेमवर्क)" के रूप में अब अप्रचलित के .नेट फ्रेमवर्क उपकरण हिस्सा है (!) shfusion.dll था;
  2. वास्तव में v6.0A VS2008 इंस्टॉल से हैं, और अनदेखा किया जा सकता है (1, 2);
  3. 64-बिट स्पष्टीकरण सिद्धांत भी उचित लगता है। मुझे यह भी लगता है कि शायद IA64 version of gacutil.exe है, इसलिए यह "प्रत्येक प्लेटफॉर्म के लिए टूल कॉपी" जैसा है, यह सिर्फ खुश है ताकि x86 संस्करण WoW64 के कारण हर जगह ठीक हो। सूची से शून्य 2 gacutil संस्करण (4, 6);
  4. किस संस्करण का उपयोग करने के लिए यह हिस्सा गलत लगता है। V4.0 gacutil.exe इसका लक्ष्य सीएलआर के अनुसार असेंबली का पता लगाता है और रखता है, और .NET 4.0 और पहले संस्करण असेंबली दोनों के लिए ठीक काम करता है। तो सवाल यह है कि क्यों V2.0 gacutil.exe छोड़ दें? मेरा अनुमान पर्यावरण पर तैनाती के उद्देश्य के लिए होगा .NET4.0 अनुपलब्ध है।
  5. जीएसी का उपयोग करने या नहीं करने के लिए, सवाल में नहीं था। तो मैं कोई टिप्पणी के साथ अंतिम पैराग्राफ छोड़ देता हूं।

अद्यतन 2.

तो, मुझे लगता है की तरह एक सुरक्षित रूप से या तो नंबर 3 (अनुपलब्ध तो .NET4.0 है) या संख्या 5 अन्यथा विंडोज x86 और x64 पर सभी GAC के संचालन के लिए उपयोग कर सकते हैं ।और प्रश्नों के उत्तर दिए गए हैं:

  1. सं
  2. कोई फर्क नहीं पड़ता, लेकिन नए संस्करण का उपयोग कर अधिक तार्किक लगता है।
  3. नहीं, आप सभी जीएसी संचालन के लिए हमेशा NETFX 4.0 Tools संस्करण (यदि .NET4.0 उपलब्ध है) का उपयोग कर सकते हैं।
+2

वास्तव में जवाब देना चाहते हैं ... "उनमें से कोई नहीं ... nuget या bin तैनात एफटीडब्ल्यू" !! –

+0

@DanielElliott अच्छा एक ;-) लेकिन फिर भी, इस बार मैं वास्तव में इस सवाल को साफ़ करना चाहता हूं। –

+0

खुद को एक जवाब में दिलचस्पी है ... शुभकामनाएँ! –

उत्तर

3

लघु संस्करण: यदि आपके पास .NET 4.0 स्थापित है, तो NETFX 4.0 Tools संस्करण का उपयोग करें। अन्यथा यह वास्तव में कोई फर्क नहीं पड़ता।

प्रश्नों के उत्तर:

  1. सं
  2. वास्तव में कोई फर्क नहीं पड़ता, जब तक कि कोई .NET 4.0 स्थापित है, ऐसी स्थिति में आप NETFX 4.0 Tools संस्करण का उपयोग करना चाहिए। सुनिश्चित नहीं है कि v7.0 एसडीके होना संभव है और .NET 4.0 स्थापित नहीं है।
  3. नहीं, आप हमेशा (और चाहिए) सभी जीएसी संचालन के लिए NETFX 4.0 Tools संस्करण का उपयोग कर सकते हैं।
3

Gacutil.exe एक विंडोज एसडीके उपकरण है, न कि .NET फ्रेमवर्क टूल। आपको अपनी मशीन पर एसडीके के दो संस्करण मिल गए हैं। आपको वीएस -2008 इंस्टॉल से 6.0 ए, वीएस -2010 इंस्टॉल से 7.0 ए मिला। आपके पास 64-बिट ऑपरेटिंग सिस्टम भी है, इसलिए आपको 64-बिट टूल भी मिलते हैं। Gacutil.exe के लिए कोई फर्क नहीं पड़ता, यह सुनिश्चित नहीं है कि वे इसे अलग से क्यों शामिल करते हैं। शायद विजुअल स्टूडियो कमांड प्रॉम्प्ट काम करने के लिए, ध्यान दें कि आपके पास 32-बिट और 64-बिट संस्करण अलग हैं। सी ++ परियोजनाओं के लिए बहुत मायने रखता है। वीएस -2010 सीएलआर संस्करण 4 और सीएलआर संस्करण 2 दोनों को लक्षित करने की अनुमति देता है ताकि कुल 6 संस्करण हो।

इससे कोई फर्क नहीं पड़ता कि आपके मशीन पर दो जीएसी हैं। .NET 4 असेंबली के लिए जीएसी c: \ windows \ microsoft.net \ assembly में संग्रहीत है। पिछले संस्करणों के लिए यह c: \ windows \ assembly में संग्रहीत है। उचित जीएसी में असेंबली प्राप्त करने के लिए आपको gacutil.exe के उचित संस्करण का उपयोग करना होगा। .NET 4 को लक्षित करने वाली असेंबली के लिए, बिन \ NETFX 4.0 टूल्स में से किसी एक का उपयोग करना चाहिए। और पहले के लिए, आप बिन में से एक का उपयोग करना चाहिए।

इसका उपयोग करना सबसे अच्छा नहीं है, असेंबली में एक स्थानीय मशीन की प्रतिलिपि स्थानीय संपत्ति सेट होनी चाहिए। जीएसी एक तैनाती की जानकारी है, आपको परेशानी होगी जब आपके जीएसी में एक असेंबली है जो आपके उपयोगकर्ता के जीएसी में नहीं है।

+0

इसके अलावा, प्रशासनिक अधिकारों के बिना उपयोगकर्ता ऐसे एप्लिकेशन को इंस्टॉल करने में सक्षम नहीं होंगे जिसके लिए जीएसी (जैसे ओरेकल ओडीपी.नेट) में असेंबली की आवश्यकता होती है। ओडीपी.नेट के मामले में, स्थानीय प्रतिलिपि काम नहीं करता है। –

0

यह सबसे अच्छा जवाब नहीं है, लेकिन मैं एक अवलोकन देख रहा हूं। संबंधित विजुअल स्टूडियो इंस्टॉल के लिए आपके एप्लिकेशन के विकास के लिए जो कुछ भी आप उपयोग कर रहे हैं उसके आधार पर नवीनतम संस्करण फ़ोल्डर का उपयोग करें।

C:\Program Files (x86)\Microsoft SDKs\Windows\{SDK version}\bin\NETFX 4.5.1 Tools\gacutil.exe 

जब नियंत्रण कक्ष> प्रोग्राम और सुविधाएँ> की तुलना मेरी दृश्य स्टूडियो के लिए तारीख "पर स्थापित" स्थापित करता है, मैं यहाँ के तहत कई अलग अलग फ़ोल्डरों दिखाई दे रही है। मैं अनुमान लगा रहा हूं कि इन दो प्रतिष्ठानों के दौरान कई फ़ोल्डरों को अपडेट किया गया है।

फ़ोल्डर जहाँ "Gacutil.exe" बसता था और संशोधित तिथि:

Visual Studio 2012 - 3/20/2014 
Visual Studio 2013 - 5/15/2015 

क्या में है की तुलना पाने के लिए:

C:\Program Files (x86)\Microsoft SDKs\Windows\ 
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\ - 3/20/2014 
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\ - 3/20/2014 
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\ - 5/15/2015 
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0\ - 3/20/2014 
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\ - 5/15/2015 
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1\ - 5/15/2015 
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\ - 5/15/2015 

विंडोज तारीख "पर स्थापित" के साथ दृश्य स्टूडियो प्रतिष्ठानों जीएसी, मैंने इस कमांड को चलाया और तुलना करने के लिए फाइलों को अलग किया।

cd C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\ 
gacutil /l > c:\v8.1A.gac.txt 

फिर मैंने प्रत्येक संस्करण के लिए फ़ोल्डर को उचित रूप से बदल दिया।

संबंधित मुद्दे