Onde está o Machine.Config?


435

Quero aplicar uma alteração para que eu possa usar as configurações do Server GC para meu aplicativo C # 3.5 - posso fazer isso editando o machine.configarquivo.

O único problema é que não sei onde é.

Como posso encontrar o caminho desse arquivo de forma repetível em várias máquinas diferentes

Respostas:


585

32 bits

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

64 bits

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

[version]deve ser igual a v1.0.3705, v1.1.4322, v2.0.50727ou v4.0.30319.

v3.0e v3.5apenas contém montagens adicionais para v2.0.50727que não haja config\machine.config. v4.5.xe v4.6.xsão armazenados dentro v4.0.30319.


20
Provavelmente vale a pena mencionar os únicos dois diretórios [version] nos quais você encontrará um machine.config é v2.0.50727 e v4.0.30319, pois as v3.0 e v3.5 usam o .NET 2.0 CLR e o v4.5.x substitua as substituições para não ter seus próprios diretórios de estrutura. Ah, e se você tiver azar de continuar usando o .NET 1.1, pode haver um diretório Framework / v1.1.4322.
Scott Lerch

@ ScottLerch Isso não é verdade no meu sistema. Há v1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5 e v4.0.30319
Kevin Panko

2
@ KevinPanko sim, eu já mencionei a ressalva sobre 1.1, mas também deveria ter mencionado a 1.0 também ... só não tive que lidar com nenhum desses há muito tempo. Você não deve encontrar um machine.config nos diretórios v3.0 ou v3.5; se o fizer, não faço ideia do porquê.
22714 Scott

Lembre-se de abrir arquivos .config com um bloco de notas sendo executado como administrador; portanto, quando você salva algo, o sistema não salva as alterações na pasta errada com base em 32 ou 64 bits.
Afshin Teymoori

@AfshinTeymoori Não tenho 100% de certeza, mas se você executar o bloco de notas no modo não administrador, não poderá salvar as alterações, pois não tem acesso de gravação ao arquivo? (também se você executar no admin ou não, não deverá mudar se salvar em 32 ou 64 bits).
Peter Peter

88

Você pode executar isso no PowerShell:

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

O que gera isso para o .net 4:

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

Observe, no entanto, que isso pode mudar dependendo de .net estar sendo executado como 32 ou 64 bits, o que resultará em \Framework\ou \Framework64\respectivamente.


5
No PowerShell, você pode omitir o "Sistema". e apenas use [Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile. (Também é especificamente que o 32-bit caminho para .NET 4.0 64 bits é em ... \ Framework64 \ ... #pedantry.)
brianary

2
Observe que isso retornará o caminho de 64 bits se você estiver executando o PowerShell de 64 bits.
ForNeVeR

45

Para ter certeza absoluta, coloque um Label em uma página ASP.NET e execute este código:

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

Eu acredito que isso não deixará dúvidas!


14
Ou executar este no PowerShell[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
Daniel Little

16

Depende semi-embora ... o meu é:

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

e

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



2

No seu aplicativo asp.net, use este

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

2
  1. Abra o comando Executar do Windows. Atalho => tecla do Windows + r
  2. Digite "microsoft.net" - pasta MS .Net é aberta
  3. Abra a pasta "Framework" / "Framework64" (com base no seu processador).
  4. Selecione uma pasta específica da versão do FW, por exemplo, "v4.0.30319"
  5. Abrir pasta de configuração
  6. Machine.config estará disponível lá. Felicidades.

-1

Você pode executar isso no PowerShell: copiar e colar no Power Shell [System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile

minha saída é: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50527 \ config \ machine.config

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.