मशीन कहां है। कॉनफिग?


435

मैं एक परिवर्तन लागू करना चाहता हूं ताकि मैं अपने सी # 3.5 ऐप के लिए सर्वर जीसी सेटिंग्स का उपयोग कर सकूं - मैं machine.configफ़ाइल को संपादित करके ऐसा कर सकता हूं ।

एकमात्र समस्या यह है कि मुझे नहीं पता कि वह कहां है।

मैं इस फाइल के पथ को कई अलग-अलग मशीनों में एक रिपीटेबल तरीके से कैसे पा सकता हूं

जवाबों:


585

32-बिट

%windir%\Microsoft.NET\Framework\[version]\config\machine.config

64-बिट

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config 

[version]बराबर होना चाहिए v1.0.3705, v1.1.4322, v2.0.50727या v4.0.30319

v3.0और v3.5सिर्फ अतिरिक्त असेंबली होते हैं v2.0.50727ताकि कोई भी न हो config\machine.configv4.5.xऔर v4.6.xअंदर जमा हो जाते हैं v4.0.30319


20
यह शायद केवल दो [संस्करण] निर्देशिकाओं का उल्लेख करने के लायक है। आपको v2.0.50727 और v4.0.30319 में एक मशीन मिल जाएगी। v3.0 और v3.5 .NET 2.0 CLR और v4.5.x का उपयोग करते हैं। प्रतिस्थापन में गिरावट तो अपने स्वयं के ढांचे निर्देशिका नहीं है। ओह, और यदि आप अभी भी बदकिस्मत हैं। अभी भी .NET 1.1 का उपयोग कर रहे हैं तो एक फ्रेमवर्क / v1.1.4322 निर्देशिका हो सकती है।
स्कॉट लेर्च

@ScottLerch यह मेरे सिस्टम पर सही नहीं है। V1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5, और v4.0.30319
केविन पैंको

2
@ केविनपैंको हां, मैंने पहले ही 1.1 के बारे में चेतावनी का उल्लेख किया है, लेकिन साथ ही 1.0 का भी उल्लेख किया जाना चाहिए ... बस लंबे समय में उन दोनों के साथ सौदा नहीं करना पड़ा है। आपको अपने v3.0 या v3.5 निर्देशिकाओं में एक मशीन नहीं मिलनी चाहिए। हालांकि, अगर आप ऐसा करते हैं तो मुझे पता नहीं क्यों।
स्कॉट लेरच

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

@AfshinTeymoori मुझे 100% यकीन नहीं है, लेकिन अगर आप नॉन एडमिन मोड में नोटपैड चलाते हैं, तो आपको किसी भी तरह के बदलाव को बचाने में सक्षम नहीं होना चाहिए क्योंकि आपके पास फ़ाइल तक पहुंच नहीं है? (यह भी कि अगर आप एडमिन में चलते हैं या नहीं बदलना चाहिए अगर आप 32 या 64 बिट में सेव करते हैं)।
पीटर

88

आप इसे पॉवरशेल में चला सकते हैं:

[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile

जो इसे .net 4 के लिए आउटपुट करता है:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config

ध्यान दें कि यह इस आधार पर बदल सकता है कि क्या .net 32 ​​या 64 बिट के रूप में चल रहा है जिसके परिणामस्वरूप \Framework\या \Framework64\क्रमशः होगा।


5
PowerShell में, आप "सिस्टम" को छोड़ सकते हैं। और बस उपयोग करें [Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile। (यह भी कि विशेष रूप से .NET 4.0 के लिए 32-बिट पथ है। 64-बिट… \ फ्रेमवर्क 64 \… #pedantry में है)
रिश्वत

2
ध्यान दें कि यदि आप 64-बिट पॉवरशेल चला रहे हैं तो यह 64-बिट पथ को लौटा देगा।
ForNeVeR

45

पूरी तरह से सुनिश्चित होने के लिए, ASP.NET पृष्ठ पर एक लेबल को थप्पड़ मारें और इस कोड को चलाएं:

labelDebug.Text = System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile;

मुझे विश्वास है कि यह कोई संदेह नहीं छोड़ देगा!


14
या इसे पॉवरशेल में चलाएं[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
डैनियल लिटिल

16

यह अर्ध-निर्भर करता है, हालांकि ... मेरा है:

C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Config

तथा

C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Config




2
  1. विंडोज रन कमांड खोलें। शॉर्टकट => विंडोज़ कुंजी + आर
  2. "Microsoft.net" टाइप करें - MS .Net फ़ोल्डर खुल जाता है
  3. "फ्रेमवर्क" / "फ्रेमवर्क 64" फ़ोल्डर खोलें (आपके प्रोसेसर पर आधारित)।
  4. विशिष्ट एफडब्ल्यू संस्करण फ़ोल्डर का चयन करें जैसे "v4.0.30319"
  5. कॉन्फ़िगरेशन फ़ोल्डर खोलें
  6. Machine.config वहां उपलब्ध होगी। चीयर्स।

-1

आप इसे पॉवरशेल में चला सकते हैं: पावर शेल में कॉपी और पेस्ट करें [System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile

मेरा आउटपुट है: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50527 \ config \ machine.config

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