Wo ist Machine.Config?


435

Ich möchte eine Änderung anwenden, damit ich die Server-GC-Einstellungen für meine C # 3.5-App verwenden kann. Dies kann durch Bearbeiten der machine.configDatei erfolgen.

Das einzige Problem ist, dass ich nicht weiß, wo das ist.

Wie kann ich den Pfad dieser Datei auf mehreren Computern wiederholbar finden?

Antworten:


585

32-Bit

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

64-Bit

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

[version]sollte gleich sein v1.0.3705, v1.1.4322, v2.0.50727oder v4.0.30319.

v3.0und v3.5nur zusätzliche Baugruppen enthalten, v2.0.50727damit es keine geben sollte config\machine.config. v4.5.xund v4.6.xsind im Inneren gespeichert v4.0.30319.


20
Es ist wahrscheinlich erwähnenswert, dass die einzigen zwei [Versions] -Verzeichnisse, in denen Sie eine machine.config finden, v2.0.50727 und v4.0.30319 sind, da v3.0 und v3.5 die .NET 2.0 CLR und v4.5.x verwenden Drop-in-Ersetzungen, haben also keine eigenen Framework-Verzeichnisse. Oh, und wenn Sie das Pech haben, weiterhin .NET 1.1 zu verwenden, gibt es möglicherweise ein Framework / v1.1.4322-Verzeichnis.
Scott Lerch

@ScottLerch Das stimmt auf meinem System nicht. Es gibt v1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5 und v4.0.30319
Kevin Panko

2
@ KevinPanko Ja, ich habe bereits den Vorbehalt gegen 1.1 erwähnt, hätte aber auch 1.0 erwähnen sollen ... musste mich nur lange nicht mehr damit befassen. Sie sollten jedoch keine machine.config in Ihren Verzeichnissen v3.0 oder v3.5 finden. Wenn Sie dies tun, habe ich keine Ahnung warum.
Scott Lerch

Denken Sie daran, .config-Dateien mit einem Editor zu öffnen, der als Administrator ausgeführt wird. Wenn Sie also etwas speichern, speichert das System Ihre Änderungen nicht in einem falschen Ordner, der auf 32- oder 64-Bit basiert.
Afshin Teymoori

@AfshinTeymoori Ich bin nicht 100% sicher, aber wenn Sie den Editor im Nicht-Administratormodus ausführen, sollten Sie überhaupt keine Änderungen speichern können, da Sie keinen Schreibzugriff auf die Datei haben. (Auch wenn Sie in admin laufen oder nicht, sollte sich nichts ändern, wenn Sie in 32 oder 64 Bit speichern).
Peter

88

Sie können dies in Powershell ausführen:

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

Welche Ausgabe dies für .net 4:

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

Beachten Sie jedoch, dass sich dies ändern kann, je nachdem, ob .net als 32- oder 64-Bit ausgeführt wird, was zu \Framework\bzw. führt \Framework64\.


5
In PowerShell können Sie das "System" weglassen. und einfach benutzen [Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile. (Auch das ist speziell der 32-Bit- Pfad für .NET 4.0. 64-Bit ist in… \ Framework64 \… #pedantry)
brianary

2
Beachten Sie, dass dies einen 64-Bit-Pfad zurückgibt, wenn Sie 64-Bit-PowerShell ausführen.
ForNeVeR

45

Um absolut sicher zu sein, schlagen Sie ein Label auf eine ASP.NET-Seite und führen Sie diesen Code aus:

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

Ich glaube, das wird keinen Zweifel lassen!


14
Oder führen Sie dies in Powershell[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
Daniel Little

16

Es hängt aber halb davon ab ... meins ist:

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

und

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



2

Verwenden Sie dies in Ihrer asp.net-App

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

2
  1. Öffnen Sie den Windows-Befehl Ausführen. Verknüpfung => Windows-Taste + r
  2. Typ "microsoft.net" - Der Ordner MS .Net wird geöffnet
  3. Öffnen Sie den Ordner "Framework" / "Framework64" (basierend auf Ihrem Prozessor).
  4. Wählen Sie einen bestimmten FW-Versionsordner aus, z. B. "v4.0.30319".
  5. Konfigurationsordner öffnen
  6. Dort wird Machine.config verfügbar sein. Prost.

-1

Sie können dies in Powershell ausführen: Kopieren und Einfügen in Power Shell [System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile

Meine Ausgabe lautet: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50527 \ config \ machine.config

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.