Où est Machine.Config?

435

Je souhaite appliquer une modification afin que je puisse utiliser les paramètres du GC du serveur pour mon application C # 3.5 - je peux le faire en modifiant le machine.configfichier.

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 reproductible sur un certain nombre de machines différentes

Jack Kada
la source

Réponses:

585

32 bits

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

64 bits

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

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

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

Peter
la source
20
Il vaut probablement la peine 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 laisser tomber les remplacements donc ne pas avoir leurs propres répertoires framework. Oh, et si vous n'avez pas la chance de continuer à utiliser .NET 1.1, il peut y avoir un répertoire Framework / v1.1.4322.
Scott Lerch
@ScottLerch Ce n'est pas vrai sur mon système. Il y a v1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5 et v4.0.30319
Kevin Panko
2
@KevinPanko ouais, j'ai déjà mentionné la mise en garde à propos de 1.1, mais j'aurais dû également mentionner 1.0 aussi ... je n'ai tout simplement pas eu à faire face à ces problèmes depuis longtemps. Vous ne devriez cependant pas trouver un fichier machine.config dans vos répertoires v3.0 ou v3.5, si vous le faites, je ne sais pas pourquoi.
Scott Lerch
N'oubliez pas d'ouvrir les fichiers .config avec un bloc-notes exécuté en tant qu'administrateur afin que lorsque vous enregistrez quelque chose, le système n'enregistre pas vos modifications dans un mauvais dossier basé sur 32 ou 64 bits.
Afshin Teymoori
@AfshinTeymoori Je ne suis pas sûr à 100% mais si vous exécutez le bloc-notes en mode non administrateur, vous ne devriez pas être en mesure d'enregistrer les modifications car vous n'avez pas accès en écriture au fichier? (également si vous exécutez en admin ou non ne devrait pas changer si vous enregistrez en 32 ou 64 bits).
Peter
88

Vous pouvez l'exécuter dans PowerShell:

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

Ce qui génère ceci pour .net 4:

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

Notez cependant que cela peut changer selon que .net fonctionne en 32 ou 64 bits, ce qui entraînera \Framework\ou \Framework64\respectivement.

Daniel Little
la source
5
Dans PowerShell, vous pouvez omettre le «système». et juste utiliser [Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile. (Il s'agit également du chemin 32 bits pour .NET 4.0. 64 bits se trouve dans… \ Framework64 \… #pedantry)
brianary
2
Notez que cela renverra un chemin d'accès 64 bits si vous exécutez PowerShell 64 bits.
ForNeVeR
45

Pour être absolument sûr, giflez 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!

DînerPhilanderer
la source
14
Ou exécutez ceci en PowerShell[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
Daniel Little
16

Cela dépend cependant ... le mien est:

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

et

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

Timothy Khouri
la source
3

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

John Saunders
la source
2

Dans votre application asp.net, utilisez ceci

using System.Configuration;
Response.Write(ConfigurationManager.OpenMachineConfiguration().FilePath);
Hosein Djadidi
la source
2
  1. Ouvrez la commande Windows Run. Raccourci => touche Windows + r
  2. Tapez "microsoft.net" - le dossier MS .Net s'ouvre
  3. Ouvrez le dossier "Framework" / "Framework64" (en fonction de votre processeur).
  4. Sélectionnez un dossier de version FW spécifique, par exemple "v4.0.30319"
  5. Ouvrir le dossier de configuration
  6. Machine.config y sera disponible. À votre santé.
Saikat Chakraborty
la source
-1

Vous pouvez l'exécuter dans powershell: copier-coller dans le Power Shell [System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile

ma sortie est: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50527 \ config \ machine.config

lazydeveloper
la source