แอปพลิเคชัน Windows ที่ทันสมัยส่วนใหญ่ต้องการ .NET Framework เพื่อให้ทำงานได้อย่างถูกต้อง ตัวช่วยสร้างการตั้งค่าบทบาทและคุณสมบัติ Server Manager ใน Windows Server 2012 R2 อนุญาตให้ติดตั้ง .NET Framework สองเวอร์ชันที่แตกต่างกันในแต่ละครั้ง - 3.5 และ 4.5 การติดตั้ง .NET Framework 4.5 มักไม่ก่อให้เกิดปัญหาใดๆ แต่ทำได้ง่ายมาก อย่างไรก็ตาม คุณไม่สามารถพูดแบบเดียวกันทั้งหมดเกี่ยวกับการติดตั้ง .NET Framework 3.5 ได้
ที่จริงแล้ว เมื่อพยายามติดตั้ง .NET Framework 3.5 ใน Windows Server 2012 R2 ด้วยการตั้งค่ามาตรฐาน ข้อความแสดงข้อผิดพลาดต่อไปนี้จะปรากฏขึ้น:“การติดตั้งหนึ่งในบทบาท บริการบทบาท หรือคุณสมบัติอื่นล้มเหลว ไม่พบไฟล์ต้นทาง…” .
สาเหตุที่อยู่เบื้องหลังการทำงานนี้คือไฟล์ไบนารี .NET Framework 3.5 ไม่ได้เป็นส่วนหนึ่งของแคชในเครื่องของไฟล์ไบนารีที่บันทึกไว้ในดิสก์ระบบของเซิร์ฟเวอร์ขณะติดตั้งระบบปฏิบัติการ ซึ่งดำเนินการภายใต้แนวคิดของฟีเจอร์แบบออนดีมานด์ใน Windows Server 2012 เพื่อลดปริมาณพื้นที่ดิสก์ที่ระบบปฏิบัติการใช้ตามความต้องการของตนเอง
ตรวจสอบว่า .NET Framework 3.5 อยู่ในที่เก็บในเครื่องหรือไม่โดยใช้คำสั่ง Powershell:
Get-WindowsFeature *Framework* |
Get-WindowsFeature *เฟรมเวิร์ค*
อย่างที่คุณเห็น ส่วนประกอบที่จำเป็นจะถูกลบออก (สถานะการติดตั้ง:Removed )
โดยค่าเริ่มต้น เมื่อคุณติดตั้ง NET Framework 3.5 ผ่านตัวจัดการเซิร์ฟเวอร์ ระบบจะพยายามรับไฟล์ที่จำเป็นจากเว็บไซต์ Windows Update ทางอินเทอร์เน็ต (ไม่ใช่จากเซิร์ฟเวอร์ WSUS ในเครื่อง) และหากเซิร์ฟเวอร์ไม่มีการเข้าถึงอินเทอร์เน็ต การติดตั้ง ล้มเหลว ผู้ใช้จำเป็นต้องระบุพาธไปยังการแจกจ่าย OS ซึ่งสามารถติดตั้งคอมโพเนนต์ที่ขาดหายไปได้
ในการติดตั้ง .NET Framework 3.5 ด้วยตนเอง ให้คลิก ระบุพาธต้นทางสำรอง เพื่อป้อนเส้นทางอื่นไปยังโฟลเดอร์ที่มีดิสก์การติดตั้งของ Windows Server 2012 R2
เคล็ดลับ . ดิสก์การติดตั้งต้องมี OS เวอร์ชันเดียวกับที่คุณติดตั้ง (รุ่น ภาษา และการอัปเดตเดียวกันมีความสำคัญ) หากโปรแกรมติดตั้งไม่พบไฟล์ที่ต้องการในโฟลเดอร์ที่ระบุ โปรดดูวิธีแก้ไขปัญหาด้านล่าง
เป็นพาธ คุณสามารถระบุโฟลเดอร์ในเครื่อง (ในตัวอย่างของเราคือ D:\source\sxs โดยที่ D:\ คือตัวอักษรของไดรฟ์ดีวีดีในเครื่องที่มีการแจกจ่าย Windows Server) หรือโฟลเดอร์เครือข่าย
เมื่อคลิกตกลง ระบบจะค้นหาไบนารี .NET Framework 3.5 และติดตั้งส่วนประกอบ
การดำเนินการเดียวกันนี้สามารถทำได้จากพรอมต์คำสั่งโดยเรียกใช้คำสั่งต่อไปนี้ในฐานะผู้ดูแลระบบ:
dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess |
dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess
/ออนไลน์ หมายความว่าคุณต้องอัปเกรดระบบปฏิบัติการปัจจุบัน ไม่ใช่อิมเมจ wim
/enable-feature/featurename:NetFX3/all หมายความว่าจำเป็นต้องติดตั้ง .NET Framework 3.5 พร้อมฟีเจอร์ทั้งหมด
/ที่มา เป็นเส้นทางไปยังไดเร็กทอรีที่มีการกระจาย Windows ซึ่งมีส่วนประกอบที่จำเป็น
/LimitAccess ป้องกันการเข้าถึง Windows Update
การดำเนินการเดียวกันใน PowerShell สำหรับการติดตั้ง .Net 3.5 มีลักษณะดังนี้:
Add-WindowsFeature NET-Framework-Core -Source d:\sources\sxs |
Add-WindowsFeature NET-Framework-Core -Source d:\sources\sxs
คุณสามารถตั้งค่าเส้นทางไปยังการกระจาย Windows ดั้งเดิมในระบบเป็นประจำโดยใช้:
- พารามิเตอร์รีจิสตรี RepairContentServerSource ที่อยู่ใน HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing สาขา
- หรือ a กลุ่ม นโยบาย ระบุการตั้งค่าสำหรับการติดตั้งส่วนประกอบเสริมและการซ่อมแซมส่วนประกอบ (นโยบาย การเปลี่ยนแปลง นี้ การตั้งค่า ใน ที่ ทะเบียน)
หมายเหตุ . นโยบายกลุ่ม ระบุการตั้งค่าสำหรับการติดตั้งส่วนประกอบเสริมและการซ่อมแซมส่วนประกอบ อยู่ในส่วน GPO ต่อไปนี้:การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> ระบบ . ควรเปิดใช้งานนโยบายและควรระบุเส้นทางไปยังไดเรกทอรีที่มีการกระจายระบบปฏิบัติการ (เส้นทางไฟล์แหล่งที่มาทางเลือก ). เพื่อป้องกันไม่ให้เซิร์ฟเวอร์พยายามอัปเดตออนไลน์ ให้เลือกช่อง อย่าพยายามดาวน์โหลด payload จาก Windows Update .
ในการตรวจสอบว่ามีการติดตั้ง .NET Framework 3.5 หรือไม่ ให้ไปที่ C:\Windows\Microsoft.NET\Framework64 ไดเรกทอรีและตรวจสอบให้แน่ใจว่า v3.5 โฟลเดอร์ปรากฏขึ้น
หากวิธีการติดตั้ง .NET Framework 3.5.1 ที่อธิบายข้างต้นไม่ได้ผล ให้ลองใช้วิธีแก้ปัญหาต่อไปนี้
หลังจากติดตั้งการอัปเดตบางอย่าง เวอร์ชัน (บิลด์) ของ Windows Server 2012 R2 ในระบบอาจไม่สอดคล้องกับอิมเมจของระบบปฏิบัติการที่จัดเก็บไว้ในอิมเมจการแจกจ่ายของคุณ ในกรณีนี้ โปรแกรมติดตั้งเมื่อเปรียบเทียบเวอร์ชันของเคอร์เนล Windows ปฏิเสธที่จะติดตั้งคอมโพเนนต์เวอร์ชันที่เลิกใช้งานแล้ว ในกรณีนี้ ตามกฎ เมื่อคุณติดตั้ง .NET Framework ผ่าน dism ข้อผิดพลาดต่อไปนี้จะเกิดขึ้น:0x800f081f. ไม่พบไฟล์ต้นฉบับ
ในการแก้ไขปัญหา ให้ลองติดตั้ง .Net ออนไลน์ผ่านจากเซิร์ฟเวอร์ของ Microsoft:
- บันทึกการตั้งค่า Windows Update ปัจจุบันลงในไฟล์ reg (คีย์ HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate)
- ลบคีย์นี้และเริ่มต้นบริการ WU ใหม่:
net stop wuauserv & net start wuauserv
- เรียกใช้การติดตั้ง .Net5 ออนไลน์:
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
- หลังจากการติดตั้งเสร็จสมบูรณ์ ให้คืนการตั้งค่า WU โดยนำเข้าไฟล์ reg และเริ่มบริการ WindowsUpdate ใหม่อีกครั้ง
dism /online /enable-feature /featurename:NetFX3 /all /Source:C:\tmp\winsxs /LimitAccess
นอกจากนี้ หากคุณติดตั้งชุดภาษาบนเซิร์ฟเวอร์ ก่อนที่คุณจะติดตั้ง .NET Framework 3.5.1 คุณต้องถอนการติดตั้งโดยใช้ lpksetup คำสั่ง
โปรดตรวจสอบด้วยว่ามีการติดตั้งแพตช์สำหรับ NET 3.5 Framework ในรายการการอัปเดตระบบที่ติดตั้ง (ตามทฤษฎีแล้ว ไม่ควรติดตั้งหากไม่ได้ติดตั้งคอมโพเนนต์ NetFX3)
ถอนการติดตั้งการอัปเดตนี้และหลังจากรีบูตแล้ว ให้ลองติดตั้ง .NET 3.5