Di mana Machine.Config?

435

Saya ingin menerapkan perubahan agar saya dapat menggunakan pengaturan Server GC untuk aplikasi C # 3.5 - Saya dapat melakukannya dengan mengedit machine.configfile.

Satu-satunya masalah adalah saya tidak tahu di mana itu.

Bagaimana saya dapat menemukan jalur file ini dengan cara yang berulang di sejumlah mesin yang berbeda

Jack Kada
sumber

Jawaban:

585

32-bit

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

64-bit

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

[version]harus sama dengan v1.0.3705, v1.1.4322, v2.0.50727atau v4.0.30319.

v3.0dan v3.5hanya berisi majelis tambahan v2.0.50727sehingga tidak boleh ada config\machine.config. v4.5.xdan v4.6.xdisimpan di dalam v4.0.30319.

Peter
sumber
20
Mungkin layak menyebutkan hanya dua [versi] direktori yang akan Anda temukan di machine.config adalah v2.0.50727 dan v4.0.30319, karena v3.0 dan v3.5 menggunakan .NET 2.0 CLR dan v4.5.x adalah mampir pengganti jadi tidak memiliki direktori kerangka mereka sendiri. Oh, dan jika Anda cukup beruntung masih menggunakan. NET 1.1 maka mungkin ada direktori Framework / v1.1.4322.
Scott Lerch
@ScottLerch Itu tidak benar pada sistem saya. Ada v1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5, dan v4.0.30319
Kevin Panko
2
@KevinPanko ya, saya sudah menyebutkan peringatan sekitar 1,1 tetapi seharusnya juga menyebutkan 1,0 juga ... hanya belum harus berurusan dengan salah satu dari mereka dalam waktu yang lama. Anda seharusnya tidak menemukan machine.config di direktori v3.0 atau v3.5 Anda, jika Anda melakukannya, saya tidak tahu mengapa.
Scott Lerch
Ingatlah untuk membuka file .config dengan notepad yang dijalankan sebagai administrator sehingga ketika Anda menyimpan sistem sesuatu tidak menyimpan perubahan Anda di folder yang salah berdasarkan 32 atau 64 bit.
Afshin Teymoori
@AfshinTeymoori Saya tidak 100% yakin tetapi jika Anda menjalankan notepad dalam mode non admin, Anda seharusnya tidak dapat menyimpan perubahan sama sekali karena Anda tidak memiliki akses tulis ke file? (juga jika Anda menjalankan di admin atau tidak seharusnya tidak berubah jika Anda menyimpan dalam 32 atau 64 bit).
Peter
88

Anda dapat menjalankan ini di PowerShell:

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

Yang menghasilkan ini untuk .net 4:

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

Perhatikan bahwa hal ini dapat berubah tergantung pada apakah .net berjalan sebagai 32 atau 64 bit yang akan menghasilkan \Framework\atau \Framework64\masing - masing.

Daniel Little
sumber
5
Di PowerShell, Anda dapat menghilangkan "Sistem." dan gunakan saja [Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile. (Juga itu secara khusus jalur 32-bit untuk .NET 4.0. 64-bit ada di ... \ Framework64 \ ... #pedantry)
brianary
2
Perhatikan bahwa ini akan mengembalikan jalur 64-bit jika Anda menjalankan PowerShell 64-bit.
ForNeVeR
45

Agar benar-benar yakin, tampar Label pada halaman ASP.NET dan jalankan kode ini:

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

Saya percaya ini tidak akan meninggalkan keraguan!

DiningPhilanderer
sumber
14
Atau jalankan ini di PowerShell[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
Daniel Little
16

Itu setengah tergantung ... milikku adalah:

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

dan

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

Timothy Khouri
sumber
3

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

John Saunders
sumber
2

Di aplikasi asp.net Anda, gunakan ini

using System.Configuration;
Response.Write(ConfigurationManager.OpenMachineConfiguration().FilePath);
Hosein Djadidi
sumber
2
  1. Buka perintah Windows Run. Pintasan => tombol windows + r
  2. Ketik "microsoft.net" - Folder MS .Net terbuka
  3. Buka folder "Framework" / "Framework64" (berdasarkan pada prosesor Anda).
  4. Pilih folder versi FW tertentu misalnya "v4.0.30319"
  5. Buka folder konfigurasi
  6. Machine.config akan tersedia di sana. Bersulang.
Saikat Chakraborty
sumber
-1

Anda dapat menjalankan ini di powershell: salin & tempel di shell daya [System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile

hasil tambang adalah: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50527 \ config \ machine.config

lazydeveloper
sumber