Machine.Config nerede?


435

C # 3.5 uygulamam için Sunucu GC ayarlarını kullanabilmem için bir değişiklik uygulamak istiyorum - Bunu machine.configdosyayı düzenleyerek yapabilirim .

Tek sorun nerede olduğunu bilmiyorum.

Bu dosyanın yolunu birkaç farklı makinede tekrarlanabilir bir şekilde nasıl bulabilirim

Yanıtlar:


585

32 bit

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

64 bit

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

[version]eşit olmalıdır v1.0.3705, v1.1.4322, v2.0.50727ya da v4.0.30319.

v3.0ve v3.5sadece ek montajlar içermelidir, v2.0.50727böylece olmamalıdır config\machine.config. v4.5.xve v4.6.xiçinde saklanır v4.0.30319.


20
V3.0 ve v3.5 .NET 2.0 CLR ve v4.5.x'i kullandığından, bir machine.config içinde v2.0.50727 ve v4.0.30319 olduğunu gördüğünüz yalnızca iki [sürüm] dizininden bahsetmeye değer. kendi çerçeve dizinleri yok bu yüzden yerine bırakın. Oh, ve hala .NET 1.1 kullanmak için şanssız iseniz bir Framework / v1.1.4322 dizini olabilir.
Scott Lerch

@ScottLerch Bu benim sistemim için geçerli değil. V1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5 ve v4.0.30319
Kevin Panko

2
@KevinPanko evet, ihtardan 1.1 hakkında bahsetmiştim ama 1.0'dan da bahsetmeliydim ... uzun zamandır bunlardan herhangi biriyle uğraşmak zorunda kalmadım. V3.0 veya v3.5 dizinlerinizde bir machine.config bulmamalısınız, eğer öyleyse nedenini bilmiyorum.
Scott Lerch

.Config dosyalarını yönetici olarak çalıştırılan bir not defteri ile açmayı unutmayın, böylece bir sistemi kaydettiğinizde değişikliklerinizi 32 veya 64 bit tabanlı yanlış klasöre kaydetmez.
Afshin Teymoori

@AfshinTeymoori% 100 emin değilim ama yönetici olmayan modda not defteri çalıştırırsanız, dosyaya yazma erişiminiz olmadığından hiçbir değişikliği kaydedememeniz gerekir mi? (yönetici olarak çalıştırırsanız veya çalıştırmazsanız 32 veya 64 bit kaydederseniz de değişmemelidir).
Peter

88

Bunu powershell'de çalıştırabilirsiniz:

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

.Net 4 için bunu çıktı:

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

Bu kudreti değişim .net sonuçlanacaktır hangi 32 veya 64 bit çalıştıran olmadığına bağlı olduğunu ancak unutmayın \Framework\veya \Framework64\sırasıyla.


5
PowerShell'de "Sistem" i atlayabilirsiniz. ve sadece kullanın [Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile. (Ayrıca bu özellikle .NET 4.0 için 32-bit yoludur. 64-bit… \ Framework64 \… #pedantry'de)
brianary

2
64 bit PowerShell çalıştırıyorsanız, bunun 64 bit yol döndüreceğini unutmayın.
ForNeVeR

45

Kesin olarak emin olmak için bir ASP.NET sayfasına bir Etiket yapıştırın ve şu kodu çalıştırın:

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

Bunun şüphe bırakmayacağına inanıyorum!


14
Veya bunu powershell'de çalıştırın[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
Daniel Little

16

Yarı-bağlı olsa da ... benimki:

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

ve

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



2

Asp.net uygulamanızda bunu kullanın

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

2
  1. Windows Çalıştır komutunu açın. Kısayol => windows tuşu + r
  2. "Microsoft.net" yazın - MS .Net klasörü açılır
  3. "Framework" / "Framework64" klasörünü açın (işlemcinize göre).
  4. Belirli bir FW sürüm klasörü seçin, örn. "V4.0.30319"
  5. Yapılandırma klasörünü aç
  6. Machine.config orada mevcut olacak. Şerefe.

-1

Bunu powershell'de çalıştırabilirsiniz: kopyalama ve güç kabuğuna yapıştırma [System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile

benimki çıktı: C: ​​\ Windows \ Microsoft.NET \ Framework \ v2.0.50527 \ config \ machine.config

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.