2010-02-24 29 views
367

Tôi muốn áp dụng thay đổi để tôi có thể sử dụng cài đặt Máy chủ GC cho ứng dụng C# 3.5 của mình - Tôi có thể thực hiện điều đó bằng cách chỉnh sửa tệp machine.config.Trường hợp là Machine.Config?

Vấn đề duy nhất là tôi không biết nó ở đâu.

Làm thế nào tôi có thể tìm ra con đường của tệp này trong một cách lặp lại trên một số máy khác nhau

Trả lời

478

32-bit

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

64-bit

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

[version] phải bằng v1.0.3705, v1.1.4322, v2.0.50727 hoặc v4.0.30319.

v3.0v3.5 chỉ chứa các hội đồng bổ sung cho v2.0.50727 vì vậy không nên có config\machine.config. v4.5.xv4.6.x được lưu trữ bên trong v4.0.30319.

+16

Có thể đáng nhắc đến hai thư mục [version] duy nhất bạn sẽ tìm thấy một machine.config trong là v2.0.50727 và v4.0.30319, vì v3.0 và v3.5 sử dụng .NET 2.0 CLR và v4. 5.x được thả thay thế vì vậy không có thư mục khung riêng của họ. Oh, và nếu bạn không đủ may mắn để vẫn sử dụng .NET 1.1 thì có thể có một thư mục Framework/v1.1.4322. –

+0

@ScottLerch Điều đó không đúng trên hệ thống của tôi. Có v1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5, và v4.0.30319 –

+2

@KevinPanko vâng, tôi đã đề cập đến báo trước khoảng 1.1 nhưng cũng nên đề cập đến 1.0 là ừm ... chỉ không phải đối phó với một trong số đó trong một thời gian dài. Bạn không nên tìm thấy một machine.config trong v3.0 hoặc v3.5 thư mục của bạn mặc dù, nếu bạn làm sau đó tôi không có ý tưởng tại sao. –

2

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

15

Nó bán phụ thuộc dù ... tôi là:

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

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

43

để được hoàn toàn chắc chắn, tát một Label trên một trang ASP.NET và chạy c ode:

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

Tôi tin rằng điều này sẽ không còn nghi ngờ gì nữa!

+14

Hoặc chạy tiện ích này powershell '[System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile' –

66

Bạn có thể chạy trong PowerShell:

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

Những kết quả đầu ra này cho .net 4:

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

Lưu ý tuy nhiên điều này có thể thay đổi tùy thuộc vào việc .net đang chạy dưới dạng 32 hoặc 64 bit, kết quả sẽ tương ứng là \Framework\ hoặc \Framework64\.

+5

Trong PowerShell, bạn có thể bỏ qua" Hệ thống ". và chỉ sử dụng '[Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile'. (Ngoài ra, cụ thể là đường dẫn * 32-bit * cho .NET 4.0. 64-bit nằm trong… \ Framework64 \… #pedantry) – brianary

+2

Lưu ý rằng điều này sẽ trả lại đường dẫn 64 bit nếu bạn đang chạy PowerShell 64 bit. – ForNeVeR

2

Trong sử dụng ứng dụng asp.net bạn này

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

Bạn có thể chạy trong PowerShell: bản sao & dán trong vỏ điện [System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile

sản lượng của tôi là: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50527 \ config \ machine.config

Các vấn đề liên quan