2010-02-24 29 views
367

Deseo aplicar un cambio para poder usar la configuración de GC del servidor para mi aplicación C# 3.5; puedo hacerlo editando el archivo machine.config.¿Dónde está Machine.Config?

El único problema es que no sé dónde está eso.

¿Cómo puedo encontrar la ruta de este archivo de una manera repetible a través de un número de diferentes máquinas

Respuesta

478

32 bits

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

64-bits

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

[version] debe ser igual a v1.0.3705, v1.1.4322, v2.0.50727 o v4.0.30319.

v3.0 y v3.5 solo contienen montajes adicionales para v2.0.50727 por lo que no debería haber ninguna config\machine.config. v4.5.x y v4.6.x se almacenan dentro de v4.0.30319.

+16

Es probable que valga la pena mencionar los dos únicos directorios [de versión] en los que encontrará un machine.config es v2.0.50727 y v4.0.30319, ya que v3.0 y v3.5 usan .NET 2.0 CLR y v4. 5.x son reemplazos por lo que no tienen sus propios directorios de framework. Ah, y si tiene la mala suerte de seguir usando .NET 1.1, entonces puede haber un directorio Framework/v1.1.4322. –

+0

@ScottLerch Eso no es cierto en mi sistema. Hay v1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5 , y v4.0.30319 –

+2

@KevinPanko sí, ya he mencionado la salvedad de aproximadamente 1,1 pero debe también han mencionado como 1.0 bueno ... simplemente no he tenido que lidiar con ninguno de estos en mucho tiempo. Aunque no debería encontrar Machine.config en sus directorios v3.0 o v3.5, si lo hace, no tengo idea de por qué. –

2

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

15

Es semi-depende sin embargo ... el mío es:

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

y

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

43

con el fin de estar absolutamente seguro, pon la etiqueta en una página ASP.NET y ejecuta esta c oda:

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

¡Creo que esto no dejará dudas!

+14

O ejecute esto en powershell '[System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile' –

66

Puede ejecutar esto en PowerShell:

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

que da salida a esto para .NET 4:

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

Nota sin embargo, que esto puede cambiar dependiendo de si se está ejecutando .NET como 32 o 64 bit lo que resultará en \Framework\ o \Framework64\ respectivamente.

+5

En PowerShell, puede omitir el" Sistema ". y simplemente use '[Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile'. (También es específicamente la ruta * 32 bits * para .NET 4.0. 64 bits está en ... \ Framework64 \ ... #pedantry) – brianary

+2

Tenga en cuenta que esto devolverá la ruta de 64 bits si está ejecutando PowerShell de 64 bits. – ForNeVeR

2

En su uso aplicación asp.net este

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

Puede ejecutar esto en PowerShell: copia & pasta con cáscara de potencia [System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile

mina de salida es: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50527 \ config \ máquina.config