Где находится Machine.Config?

435

Я хочу применить изменение, чтобы я мог использовать настройки Server GC для своего приложения C # 3.5 - я могу сделать это, отредактировав machine.configфайл.

Единственная проблема - я не знаю, где это.

Как я могу найти путь к этому файлу повторяемым образом на нескольких разных машинах?

Джек Када
источник

Ответы:

585

32-битный

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

64-битный

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

[version]должен быть равен v1.0.3705, v1.1.4322, v2.0.50727или v4.0.30319.

v3.0и v3.5просто содержать дополнительные сборки, v2.0.50727чтобы их не было config\machine.config. v4.5.xи v4.6.xхранятся внутри v4.0.30319.

Питер
источник
20
Вероятно, стоит упомянуть только о двух каталогах [version], в которых вы найдете machine.config: v2.0.50727 и v4.0.30319, поскольку v3.0 и v3.5 используют .NET 2.0 CLR, а v4.5.x замените замены, поэтому не имейте своих собственных каталогов фреймворка. Да, и если вам не повезло, что вы все еще используете .NET 1.1, тогда может существовать каталог Framework / v1.1.4322.
Скотт Лерч
@ScottLerch Это не так в моей системе. Это v1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5 и v4.0.30319
Кевин Панко
2
@KevinPanko да, я уже упомянул предостережение о 1.1, но также должен был упомянуть и 1.0 ... просто долгое время не приходилось сталкиваться ни с одним из них. Вы не должны находить machine.config в ваших каталогах v3.0 или v3.5, хотя, если вы это сделаете, я понятия не имею, почему.
Скотт Лерч
Не забудьте открыть файлы .config с помощью блокнота, запускаемого от имени администратора, чтобы при сохранении чего-либо система не сохраняла изменения в неправильной папке на основе 32- или 64-разрядной версии.
Афшин Теймур
@AfshinTeymoori Я не уверен на 100%, но если вы запустите блокнот в режиме без прав администратора, вы вообще не сможете сохранить какие-либо изменения, так как у вас нет прав на запись в файл? (также, если вы запускаете в админке или нет, не должно меняться, если вы сохраняете в 32 или 64 бит).
Питер
88

Вы можете запустить это в powershell:

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

Который выводит это для .net 4:

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

Тем не менее, обратите внимание, что это может измениться в зависимости от того, работает ли .net как 32- или 64-битный, что приведет к \Framework\или \Framework64\соответственно.

Даниэль Литтл
источник
5
В PowerShell вы можете опустить «Система». и просто использовать [Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile. (Также это конкретно 32-битный путь для .NET 4.0. 64-битный находится в… \ Framework64 \… #pedantry)
brianary
2
Обратите внимание, что это вернет 64-битный путь, если вы используете 64-битную PowerShell.
ForNeVeR
45

Чтобы быть абсолютно уверенным, добавьте метку на страницу ASP.NET и запустите этот код:

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

Я верю, что это не оставит никаких сомнений!

DiningPhilanderer
источник
14
Или запустите это в PowerShell[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
Даниэль Литтл
16

Это полу-зависит, хотя ... мое:

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

а также

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

Тимоти Хоури
источник
3

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

Джон Сондерс
источник
2

В вашем приложении asp.net используйте это

using System.Configuration;
Response.Write(ConfigurationManager.OpenMachineConfiguration().FilePath);
Хосейн Джадиди
источник
2
  1. Откройте команду «Выполнить Windows». Ярлык => Windows + клавиша
  2. Тип "microsoft.net" - папка MS .Net открывается
  3. Откройте папку «Framework» / «Framework64» (в зависимости от вашего процессора).
  4. Выберите конкретную папку версии FW, например, "v4.0.30319"
  5. Открыть папку конфигурации
  6. Machine.config будет доступен там. Приветствия.
Сайкат Чакраборты
источник
-1

Вы можете запустить это в powershell: скопируйте и вставьте в Power Shell [System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile

мой вывод: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50527 \ config \ machine.config

lazydeveloper
источник