Máy.Config ở đâu?


435

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 machine.config tệp.

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

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

Câu trả lời:


585

32-bit

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

64-bit

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

[version]nên bằng v1.0.3705, v1.1.4322, v2.0.50727hoặcv4.0.30319 .

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


20
Có lẽ đáng để đề cập đến hai thư mục [phiên bản] duy nhất bạn sẽ tìm thấy 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 thay thế để không có thư mục khung riêng. Ồ, và nếu bạn không đủ may mắn để vẫn sử dụng .NET 1.1 thì có thể có thư mục Framework / v1.1.4322.
Scott Lerch

@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
Kevin Panko

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

Hãy nhớ mở các tệp .config với notepad đang được chạy với tư cách quản trị viên để khi bạn lưu một hệ thống nào đó sẽ không lưu các thay đổi của bạn trong thư mục sai dựa trên 32 hoặc 64 bit.
Afshin Teymoori

@AfshinTeymoori Tôi không chắc chắn 100% nhưng nếu bạn chạy notepad ở chế độ không phải quản trị viên, bạn sẽ không thể lưu bất kỳ thay đổi nào vì bạn không có quyền ghi vào tệp? (ngoài ra nếu bạn chạy trong quản trị viên hoặc không nên thay đổi nếu bạn lưu trong 32 hoặc 64 bit).
Peter

88

Bạn có thể chạy cái này trong powershell:

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

Kết quả nào cho .net 4:

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

Tuy nhiên, lưu ý rằng đ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, điều này sẽ dẫn đến \Framework\hoặc\Framework64\ tương ứng.


5
Trong PowerShell, bạn có thể bỏ qua "Hệ thống". và chỉ sử dụng [Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile. (Cũng có nghĩa là đặc biệt là 32-bit con đường cho .NET 4.0 64-bit là trong ... \ Framework64 \ ... #pedantry.)
brianary

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

45

Để hoàn toàn chắc chắn, hãy đặt một Nhãn trên trang ASP.NET và chạy mã này:

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

Tôi tin rằng điều này sẽ để lại không có nghi ngờ!


14
Hoặc chạy nó trong powershell[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
Daniel Little

16

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

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

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



2

Trong ứng dụng asp.net của bạn, hãy sử dụng cái này

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

2
  1. Mở lệnh Windows Run. Phím tắt => phím windows + r
  2. Nhập "microsoft.net" - Thư mục MS .Net mở ra
  3. Mở thư mục "Framework" / "Framework64" (dựa trên bộ xử lý của bạn).
  4. Chọn thư mục phiên bản FW cụ thể, ví dụ: "v4.0.30319"
  5. Mở thư mục cấu hình
  6. Machine.config sẽ có sẵn ở đó. Chúc mừng.

-1

Bạn có thể chạy cái này trong powershell: copy & paste trong power shell [System.R.78.InteropService.R nbEn Môi trường] :: SystemConfigurationFile

đầu ra của tôi là: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50527 \ config \ machine.config

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.