Where Is Machine.Config?

.NetGarbage Collection

.Net Problem Overview


I want to apply a change so That I can use Server GC settings for my C# 3.5 app - I can do that by editing the machine.config file.

The only problem is I do not know where that is.

How can I find the path of this file in a repeatable way across a number of different machines

.Net Solutions


Solution 1 - .Net

32-bit

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

64-bit

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

[version] should be equal to v1.0.3705, v1.1.4322, v2.0.50727 or v4.0.30319.

v3.0 and v3.5 just contain additional assemblies to v2.0.50727 so there should be no config\machine.config. v4.5.x and v4.6.x are stored inside v4.0.30319.

Solution 2 - .Net

You can run this in powershell:

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

Which outputs this for .net 4:

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

Note however that this might change depending on whether .net is running as 32 or 64 bit which will result in \Framework\ or \Framework64\ respectively.

Solution 3 - .Net

In order to be absolutely sure, slap a Label on an ASP.NET page and run this code:

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

I believe this will leave no doubt!

Solution 4 - .Net

It semi-depends though... mine is:

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

and

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

Solution 5 - .Net

  1. Open Windows Run command. Shortcut=> windows key + r
  2. Type "microsoft.net" - MS .Net folder opens up
  3. Open "Framework"/"Framework64" folder(based on your processor).
  4. Select specific FW version folder e.g. "v4.0.30319"
  5. Open config folder
  6. Machine.config will be available there. Cheers.

Solution 6 - .Net

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

Solution 7 - .Net

In your asp.net app use this

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

Solution 8 - .Net

This is a late reply, but if anyone is still looking to open machine.config and view/update configs, here's an example with IIS config using powershell

$machineConfig = [System.Configuration.ConfigurationManager]::OpenMachineConfiguration()

$deployment = $machineConfig.GetSection("system.web/deployment")

$deplyment.Retail = $true

$machineconfig.save()

Solution 9 - .Net

You can run this in powershell: copy & paste in power shell [System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile

mine output is: C:\Windows\Microsoft.NET\Framework\v2.0.50527\config\machine.config

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJack KadaView Question on Stackoverflow
Solution 1 - .NetPeterView Answer on Stackoverflow
Solution 2 - .NetDaniel LittleView Answer on Stackoverflow
Solution 3 - .NetDiningPhilandererView Answer on Stackoverflow
Solution 4 - .NetTimothy KhouriView Answer on Stackoverflow
Solution 5 - .NetSaikat ChakrabortyView Answer on Stackoverflow
Solution 6 - .NetJohn SaundersView Answer on Stackoverflow
Solution 7 - .NetHosein DjadidiView Answer on Stackoverflow
Solution 8 - .NetZlatanView Answer on Stackoverflow
Solution 9 - .NetlazydeveloperView Answer on Stackoverflow