อยู่ที่ไหน Machine.Config?


435

ฉันต้องการใช้การเปลี่ยนแปลงเพื่อให้ฉันสามารถใช้การตั้งค่าเซิร์ฟเวอร์ GC สำหรับแอป C # 3.5 ของฉัน - ฉันสามารถทำได้โดยแก้ไขmachine.configไฟล์

ปัญหาเดียวคือฉันไม่รู้ว่าอยู่ที่ไหน

ฉันจะค้นหาพา ธ ของไฟล์นี้ด้วยวิธีการทำซ้ำในเครื่องต่าง ๆ จำนวนหนึ่งได้อย่างไร

คำตอบ:


585

32 บิต

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

64 บิต

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

[version]ควรจะเท่ากับv1.0.3705, v1.1.4322, หรือv2.0.50727v4.0.30319

v3.0และv3.5เพียงแค่มีการประกอบเพิ่มเติมเพื่อดังนั้นไม่ควรมีv2.0.50727 และจะถูกเก็บไว้ภายในconfig\machine.configv4.5.xv4.6.xv4.0.30319


20
อาจคุ้มค่าที่จะกล่าวถึงเพียงสองไดเรกทอรี [version] ที่คุณจะพบกับ machine.config ในคือ v2.0.50727 และ v4.0.30319 เนื่องจาก v3.0 และ v3.5 ใช้. NET 2.0 CLR และ v4.5.x วางในแทนที่ดังนั้นไม่มีไดเรกทอรีกรอบของตัวเอง โอ้และถ้าคุณโชคไม่ดีที่ยังคงใช้. NET 1.1 อยู่อาจมีไดเรกทอรี Framework / v1.1.4322 อยู่
Scott Lerch

@ScottLerch นั่นไม่จริงสำหรับระบบของฉัน มี v1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5 และ v4.0.30319
Kevin Panko

2
@KevinPanko ใช่ฉันได้พูดถึงคำแถลงการณ์เกี่ยวกับ 1.1 แล้ว แต่น่าจะพูดถึง 1.0 ด้วยเช่นกัน ... แค่ไม่ต้องติดต่อกับคนใดคนหนึ่งในเวลานาน คุณไม่ควรหา machine.config ในไดเรกทอรี v3.0 หรือ v3.5 ของคุณหากคุณทำเช่นนั้นฉันก็ไม่รู้ว่าทำไม
Scott Lerch

อย่าลืมเปิดไฟล์. config ด้วย notepad ที่เรียกใช้ในฐานะผู้ดูแลระบบดังนั้นเมื่อคุณบันทึกบางสิ่งบางอย่างระบบจะไม่บันทึกการเปลี่ยนแปลงของคุณในโฟลเดอร์ที่ผิดตาม 32 หรือ 64 บิต
Afshin Teymoori

@AfshinTeymoori ฉันไม่แน่ใจ 100% แต่ถ้าคุณเรียกใช้ notepad ในโหมดที่ไม่ใช่ admin คุณไม่ควรบันทึกการเปลี่ยนแปลงใด ๆ เลยเพราะคุณไม่มีสิทธิ์ในการเขียนไฟล์? (เช่นถ้าคุณทำงานในผู้ดูแลระบบหรือไม่ควรเปลี่ยนถ้าคุณบันทึกใน 32 หรือ 64 บิต)
ปีเตอร์

88

คุณสามารถเรียกใช้สิ่งนี้ใน PowerShell:

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

ซึ่งผลลัพธ์นี้สำหรับ. net 4:

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

โปรดทราบว่าสิ่งนี้อาจมีการเปลี่ยนแปลงขึ้นอยู่กับว่า. net ทำงานเป็น 32 หรือ 64 บิตซึ่งจะส่งผลให้\Framework\หรือ\Framework64\ตามลำดับ


5
ใน PowerShell คุณสามารถละเว้น "ระบบ" [Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFileและการใช้งานเพียงแค่ (นอกจากนี้ยังเป็นเส้นทาง32 บิตโดยเฉพาะสำหรับ. NET 4.0. 64 บิตอยู่ใน… \ Framework64 \ … #pedantry)
ไบรอันรี่

2
โปรดทราบว่านี่จะส่งคืนพา ธ 64- บิตหากคุณใช้ PowerShell 64 บิต
ForNeVeR

45

เพื่อให้แน่ใจว่าแน่นอนให้ตบฉลากในหน้า ASP.NET และเรียกใช้รหัสนี้:

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

ฉันเชื่อว่านี่จะไม่มีข้อสงสัย!


14
หรือเรียกใช้สิ่งนี้ใน PowerShell[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile
Daniel Little




2
  1. เปิดคำสั่ง Windows Run ทางลัด => windows key + r
  2. พิมพ์ "microsoft.net" - เปิดโฟลเดอร์ MS .Net
  3. เปิดโฟลเดอร์ "Framework" / "Framework64" (ขึ้นอยู่กับโปรเซสเซอร์ของคุณ)
  4. เลือกโฟลเดอร์รุ่น FW เฉพาะเช่น "v4.0.30319"
  5. เปิดโฟลเดอร์ config
  6. Machine.config จะสามารถใช้ได้ที่นั่น ไชโย

-1

คุณสามารถเรียกใช้สิ่งนี้ใน powershell: คัดลอกและวางใน power shell [System.Runtime.InteropServices.RuntimeEnvironment] :: SystemConfigurationFile

ผลลัพธ์ของฉันคือ: C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50527 \ config \ machine.config

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.