447 votes

Où se trouve Machine.Config ?

Je veux appliquer une modification afin de pouvoir utiliser les paramètres Server GC pour mon application C# 3.5 - je peux le faire en modifiant le fichier machine.config fichier.

Le seul problème est que je ne sais pas où c'est.

Comment puis-je trouver le chemin de ce fichier de manière répétable sur plusieurs machines différentes ?

604voto

Peter Points 9636

32 bits

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

64 bits

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

[version] doit être égal à v1.0.3705 , v1.1.4322 , v2.0.50727 ou v4.0.30319 .

v3.0 y v3.5 contiennent simplement des assemblages supplémentaires pour v2.0.50727 donc il ne devrait pas y avoir config\machine.config . v4.5.x y v4.6.x sont stockés à l'intérieur v4.0.30319 .

23 votes

Il est probablement utile de mentionner que les deux seuls répertoires [version] dans lesquels vous trouverez un fichier machine.config sont v2.0.50727 et v4.0.30319, puisque les v3.0 et v3.5 utilisent le CLR .NET 2.0 et que les v4.5.x sont des remplacements de fichiers et n'ont pas leurs propres répertoires de framework. Oh, et si vous avez la malchance d'utiliser encore .NET 1.1, il peut y avoir un répertoire Framework/v1.1.4322.

0 votes

@ScottLerch Ce n'est pas vrai sur mon système. Il y a les v1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5 et v4.0.30319.

2 votes

@KevinPanko ouais, j'ai déjà mentionné l'avertissement à propos de la 1.1 mais j'aurais dû aussi mentionner la 1.0... je n'ai pas eu à m'occuper de l'une ou l'autre depuis longtemps. Vous ne devriez pas trouver de machine.config dans vos répertoires v3.0 ou v3.5, si c'est le cas, je ne sais pas pourquoi.

97voto

Daniel Little Points 4451

Vous pouvez exécuter ceci dans powershell :

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

Ce qui donne ce résultat pour .net 4 :

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

Notez cependant que cela peut changer selon que .net est exécuté en 32 ou 64 bits, ce qui aura pour conséquence que \Framework\ ou \Framework64\ respectivement.

5 votes

Dans PowerShell, vous pouvez omettre le "System." et utiliser simplement [Runtime.InteropServices.RuntimeEnvironment]::SystemConfigur‌​ationFile . (C'est aussi spécifiquement le 32 bits Le chemin pour .NET 4.0. La version 64 bits est en \Framework64\ #pedantry)

2 votes

Notez que cela renverra un chemin 64 bits si vous exécutez PowerShell 64 bits.

45voto

Dining Philanderer Points 1519

Pour en être absolument sûr, placez une étiquette sur une page ASP.NET et exécutez ce code :

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

Je crois que cela ne laissera aucun doute !

15 votes

Ou exécuter ceci dans powershell [System.Runtime.InteropServices.RuntimeEnvironment]::SystemC‌​onfigurationFile

16voto

Timothy Khouri Points 14640

Ça dépend à moitié... le mien l'est :

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

y

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

3voto

John Saunders Points 118808

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X