2010-02-24 18 views
367

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

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

मैं कैसे विभिन्न मशीनों

उत्तर

478

32-बिट

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

64-बिट

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config 
की एक संख्या भर में एक repeatable तरीके से इस फ़ाइल का रास्ता मिल सकता है

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

v3.0 और v3.5 में v2.0.50727 पर अतिरिक्त असेंबलीयां हैं इसलिए config\machine.config नहीं होना चाहिए। v4.5.x और v4.6.xv4.0.30319 के अंदर संग्रहीत हैं।

+16

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

+0

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

+2

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

2

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

15

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

C: \ Windows \ Microsoft.NET \ फ्रेमवर्क \ v2.0.50727 \ Config

और

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

43

\ Windows आदेश में पूरी तरह से सुनिश्चित हो सकता है, एक ASP.NET पृष्ठ पर एक लेबल तमाचा और यह सी चलाओ ode:

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

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

+14

या इसे चलाएं पावरहेल '[System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile' –

66

आप powershell में इस चला सकते हैं:

[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' का उपयोग करें। (यह भी विशेष रूप से * 32-बिट * पथ .NET 4.0 के लिए है। 64-बिट में है ... \ Framework64 \ ... #pedantry) – brianary

+2

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

2

अपने asp.net एप्लिकेशन के उपयोग में इस

using System.Configuration; 
Response.Write(ConfigurationManager.OpenMachineConfiguration().FilePath); 
0

आप powershell में इस चला सकते हैं: प्रतिलिपि शक्ति खोल में & पेस्ट [System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile

मेरा आउटपुट है: सी: \ विंडोज \ माइक्रोसॉफ्ट.NET \ Framework \ v2.0.50527 \ config \ machine।कॉन्फ़िगर

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