अधिकांश आधुनिक Windows एप्लिकेशन ठीक से काम करने के लिए .NET Framework की आवश्यकता होती है। Windows Server 2012 R2 में भूमिकाओं और फीचर्स सेटअप विज़ार्ड Server Manager एक साथ .NET Framework के दो अलग-अलग संस्करणों – 3.5 और 4.5 को इंस्टॉल करने की अनुमति देता है। .NET Framework 4.5 की स्थापना आमतौर पर कोई समस्या नहीं पैदा करती – यह बहुत सरल है, हालांकि, आप .NET Framework 3.5 की स्थापना के बारे में ठीक यही नहीं कह सकते।
दरअसल, Windows Server 2012 R2 में मानक सेटिंग्स के साथ .NET Framework 3.5 इंस्टॉल करने का प्रयास करते समय, निम्न एरर मैसेज दिखाई देता है: “Installation of one of more roles, role services or features failed. The source files could not be found…”।
इस व्यवहार का कारण यह है कि .NET Framework 3.5 बाइनरी फाइलें ऑपरेटिंग सिस्टम इंस्टॉल होने पर सर्वर के सिस्टम डिस्क पर सेव की गई बाइनरी फाइलों के लोकल कैश का हिस्सा नहीं हैं। यह Windows Server 2012 में Features on Demand कॉन्सेप्ट के तहत OS द्वारा अपनी जरूरतों के लिए उपयोग किए जाने वाले डिस्क स्पेस की मात्रा को कम करने के लिए किया जाता है।
PowerShell कमांड का उपयोग करके जांचें कि .NET Framework 3.5 लोकल रिपॉजिटरी में है या नहीं:
Get-WindowsFeature *Framework*
जैसा कि आप देख सकते हैं, आवश्यक कंपोनेंट डिलीटेड है (Install State: Removed)।
डिफ़ॉल्ट रूप से, जब आप Server Manager के माध्यम से NET Framework 3.5 इंस्टॉल करते हैं, तो सिस्टम आवश्यक फाइलों को इंटरनेट पर Windows Update वेबसाइट से प्राप्त करने का प्रयास करता है (लोकल WSUS सर्वर से नहीं), और यदि सर्वर के पास इंटरनेट एक्सेस नहीं है, तो इंस्टॉलेशन विफल हो जाता है। यूजर को OS डिस्ट्रीब्यूशन का पथ निर्दिष्ट करना होगा जिससे गायब कंपोनेंट इंस्टॉल किया जा सके।
.NET Framework 3.5 को मैन्युअली इंस्टॉल करने के लिए, Windows Server 2012 R2 के इंस्टॉलेशन डिस्क वाले फोल्डर का वैकल्पिक पथ दर्ज करने के लिए Specify an alternative source path पर क्लिक करें।
टिप. इंस्टॉलेशन डिस्क में वही OS संस्करण होना चाहिए जो आपके पास इंस्टॉल है (समान एडिशन, भाषा, और अपडेट महत्वपूर्ण हैं)। यदि इंस्टॉलर निर्दिष्ट फोल्डर में आवश्यक फाइलें नहीं ढूंढ पाता, तो नीचे दिए गए समाधान देखें।पथ के रूप में, आप या तो लोकल फोल्डर (हमारे उदाहरण में यह D:\source\sxs है, जहां D:\ Windows Server डिस्ट्रीब्यूशन वाले लोकल DVD ड्राइव का अक्षर है), या नेटवर्क फोल्डर निर्दिष्ट कर सकते हैं।
OK पर क्लिक करके, सिस्टम .NET Framework 3.5 बाइनरी ढूंढेगा और कंपोनेंट इंस्टॉल करेगा।
कमांड प्रॉम्प्ट से एडमिनिस्ट्रेटर के रूप में निम्न कमांड चलाकर वही ऑपरेशन किया जा सकता है:
dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess
/Online का अर्थ है कि आपको अपने वर्तमान OS को अपग्रेड करना है, न कि wim इमेज को
/enable-feature/featurename: NetFX3/all का अर्थ है कि .NET Framework 3.5 को इसकी सभी सुविधाओं के साथ इंस्टॉल करना आवश्यक है
/Source Windows डिस्ट्रीब्यूशन वाली डायरेक्टरी का पथ है जिसमें आवश्यक कंपोनेंट्स हैं
/LimitAccess Windows Update तक पहुंच को रोकता है
PowerShell में .Net 3.5 इंस्टॉल करने के लिए वही ऑपरेशन इस तरह दिखता है:
Add-WindowsFeature NET-Framework-Core -Source d:\sources\sxs
मूल Windows डिस्ट्रीब्यूशन का पथ सिस्टम में नियमित आधार पर सेट किया जा सकता है:
- रजिस्ट्री पैरामीटर RepairContentServerSource का उपयोग करके जो HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing ब्रांच में स्थित है
- या ग्रुप पॉलिसी Specify settings for optional component installation and component repair (पॉलिसी रजिस्ट्री में इस सेटिंग को बदलती है)
सत्यापित करने के लिए कि .NET Framework 3.5 इंस्टॉल है, C:\Windows\Microsoft.NET\Framework64 डायरेक्टरी पर जाएं और सुनिश्चित करें कि v3.5 फोल्डर दिखाई दिया।
यदि ऊपर वर्णित .NET Framework 3.5.1 इंस्टॉलेशन विधियों ने आपकी मदद नहीं की, तो निम्न समाधान आज़माएं।
कुछ अपडेट इंस्टॉल करने के बाद, सिस्टम में Windows Server 2012 R2 का संस्करण (बिल्ड) आपके डिस्ट्रीब्यूशन इमेज में स्टोर्ड OS के इमेज से मेल नहीं खा सकता। इस मामले में, इंस्टॉलर, Windows कर्नेल के संस्करण की तुलना करते समय, कंपोनेंट के अप्रचलित संस्करण को इंस्टॉल करने से इनकार कर देता है। इस मामले में, एक नियम के रूप में, जब आप dism के माध्यम से .NET Framework इंस्टॉल करते हैं, तो निम्न एरर होती है: 0x800f081f. The source files could not be found
समस्या को ठीक करने के लिए Microsoft सर्वर्स के माध्यम से .Net ऑनलाइन इंस्टॉल करने का प्रयास करें:
- वर्तमान Windows Update सेटिंग्स को रजिस्ट्री फाइल में सेव करें (कुंजी HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate)
- इस कुंजी को डिलीट करें और WU सर्विस रीस्टार्ट करें:
net stop wuauserv & net start wuauserv - .Net5 ऑनलाइन इंस्टॉलेशन चलाएं:
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All - इंस्टॉलेशन पूरा होने के बाद, रजिस्ट्री फाइल इम्पोर्ट करके WU सेटिंग्स वापस करें और WindowsUpdate सर्विस को फिर से रीस्टार्ट करें
dism /online /enable-feature /featurename:NetFX3 /all /Source:C:\tmp\winsxs /LimitAccessइसके अलावा, यदि आपने सर्वर पर Language Packs इंस्टॉल किए हैं, तो .NET Framework 3.5.1 इंस्टॉल करने से पहले, आपको lpksetup कमांड का उपयोग करके इसे अनइंस्टॉल करना होगा।
यह भी जांचें कि इंस्टॉल किए गए सिस्टम अपडेट्स की सूची में NET 3.5 Framework के लिए इंस्टॉल पैच हैं (सैद्धांतिक रूप से उन्हें इंस्टॉल नहीं किया जाना चाहिए अगर NetFX3 कंपोनेंट इंस्टॉल नहीं है)।
इन अपडेट्स को अनइंस्टॉल करें और रीबूट के बाद, .NET 3.5 इंस्टॉल करने का प्रयास करें।