2010-02-24 3 views
367

Je souhaite appliquer une modification afin que je puisse utiliser les paramètres du serveur GC pour mon application C# 3.5 - Je peux le faire en éditant le fichier machine.config.Où est Machine.Config?

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étée sur plusieurs machines différentes

Répondre

478

32 bits

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

64-bit

%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 et v3.5 contiennent seulement des ensembles supplémentaires pour v2.0.50727 donc il ne devrait pas config\machine.config. v4.5.x et v4.6.x sont stockés à l'intérieur v4.0.30319.

+16

Il est probablement utile de mentionner les deux seuls répertoires [version] dans lesquels vous trouverez un fichier machine.config: v2.0.50727 et v4.0.30319, puisque v3.0 et v3.5 utilisent le .NET 2.0 CLR et v4. 5.x sont des remplaçants, donc ils n'ont pas leurs propres répertoires de frameworks. 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

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

+2

@KevinPanko oui, je l'ai déjà mentionné la mise en garde au sujet de 1.1, mais aurait aussi mentionné que 1.0 Eh bien ... Je n'ai pas eu à traiter avec l'un ou l'autre depuis longtemps. Vous ne devriez pas trouver de machine.config dans vos répertoires v3.0 ou v3.5, si vous le faites, je ne sais pas pourquoi. –

2

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

15

Il semi dépend bien ... le mien est:

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

et

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

43

pour être absolument sûr, gifler une étiquette sur une page ASP.NET et exécutez ce c ode:

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

Je crois que cela ne laissera aucun doute!

+14

Ou exécutez cela dans powershell '[System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile' –

66

Vous pouvez exécuter ce en Powershell:

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

qui sort ce pour .net 4:

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

Notez cependant que cela pourrait changer selon que .net est en cours d'exécution comme 32 ou 64 bits qui se traduira par \Framework\ ou \Framework64\ respectivement.

+5

Dans PowerShell, vous pouvez omettre le" Système ". et utilisez simplement [Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile'. (Ceci est aussi spécifiquement le chemin * 32 bits * pour .NET 4.0 64 bits est dans ... \ Framework64 \ ... #pedantry) – brianary

+2

Notez que cela retournera le chemin 64 bits si vous exécutez PowerShell 64 bits. – ForNeVeR

2

Dans votre application asp.net utiliser cette

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

Vous pouvez exécuter ce en Powershell: copie & pâte dans la coquille de puissance [System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile

la sortie de la mine est: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50527 \ config \ machine.config