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?

Jack Kada
quelle

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.

Peter
quelle
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\.

Daniel Little
quelle
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!

DiningPhilanderer
quelle
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

Timothy Khouri
quelle
3

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

John Saunders
quelle
2

Verwenden Sie dies in Ihrer asp.net-App

using System.Configuration;
Response.Write(ConfigurationManager.OpenMachineConfiguration().FilePath);
Hosein Djadidi
quelle
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.
Saikat Chakraborty
quelle
-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

fauler Entwickler
quelle