Dov'è Machine.Config?


435

Voglio applicare una modifica in modo da poter utilizzare le impostazioni Server GC per la mia app C # 3.5 - Posso farlo modificando il machine.configfile.

L'unico problema è che non so dove sia.

Come posso trovare il percorso di questo file in modo ripetibile su un numero di macchine diverse

Risposte:


585

32-bit

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

64-bit

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

[version]deve essere uguale a v1.0.3705, v1.1.4322, v2.0.50727o v4.0.30319.

v3.0e v3.5contenere solo assiemi aggiuntivi per v2.0.50727cui non ci dovrebbero essere config\machine.config. v4.5.xe v4.6.xsono memorizzati all'interno v4.0.30319.


20
Vale probabilmente la pena menzionare le uniche due directory [versione] in cui troverai machine.config è v2.0.50727 e v4.0.30319, poiché v3.0 e v3.5 usano .NET 2.0 CLR e v4.5.x sono rimpiazzare le sostituzioni in modo da non avere le proprie directory del framework. Oh, e se sei abbastanza sfortunato da usare ancora .NET 1.1, allora potrebbe esserci una directory Framework / v1.1.4322.
Scott Lerch,

@ScottLerch Questo non è vero sul mio sistema. C'è v1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5 e v4.0.30319
Kevin Panko,

2
@KevinPanko sì, ho già menzionato l'avvertimento sull'1.1 ma avrei dovuto menzionare anche l'1.0 ... non ho avuto a che fare con nessuno di questi da molto tempo. Non dovresti trovare un machine.config nelle tue directory v3.0 o v3.5, se lo fai allora non ho idea del perché.
Scott Lerch,

Ricorda di aprire i file .config con un blocco note in esecuzione come amministratore, quindi quando salvi qualcosa il sistema non salva le modifiche nella cartella sbagliata in base a 32 o 64 bit.
Afshin Teymoori,

@AfshinTeymoori Non ne sono sicuro al 100% ma se esegui il blocco note in modalità non admin non dovresti essere in grado di salvare le modifiche poiché non hai accesso in scrittura al file? (anche se si esegue in admin o no non dovrebbe cambiare se si salva in 32 o 64 bit).
Peter,

88

Puoi eseguirlo in PowerShell:

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

Che produce questo per .net 4:

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

Si noti tuttavia che ciò potrebbe cambiare a seconda che .net sia in esecuzione a 32 o 64 bit, il che comporterà \Framework\o \Framework64\rispettivamente.


5
In PowerShell, puoi omettere il "Sistema". e basta usare [Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile. (Anche questo è specificamente il percorso a 32 bit per .NET 4.0. 64 bit è in ... \ Framework64 \ ... #pedantry)
brianary

2
Si noti che questo restituirà il percorso a 64 bit se si esegue PowerShell a 64 bit.
ForNeVeR,

45

Per essere assolutamente sicuro, schiaffeggia un'etichetta su una pagina ASP.NET ed esegui questo codice:

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

Credo che questo non lascerà dubbi!


14
O eseguilo in PowerShell[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
Daniel Little il

16

Dipende semi ... però il mio è:

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

e

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



2

Nella tua app asp.net usa questo

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

2
  1. Apri il comando Esegui di Windows. Scorciatoia => tasto windows + r
  2. Digita "microsoft.net" - Si apre la cartella MS .Net
  3. Apri la cartella "Framework" / "Framework64" (in base al tuo processore).
  4. Seleziona la cartella della versione FW specifica, ad es. "V4.0.30319"
  5. Apri la cartella di configurazione
  6. Machine.config sarà disponibile qui. Saluti.

-1

Puoi eseguirlo in PowerShell: copia e incolla in Power Shell [System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile

il mio output è: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50527 \ config \ machine.config

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.