আধুনিক অধিকাংশ উইন্ডোজ অ্যাপ্লিকেশন সঠিকভাবে কাজ করার জন্য .NET Framework প্রয়োজন। উইন্ডোজ সার্ভার ২০১২ R2-এ Server Manager-এর রোল ও ফিচার সেটআপ উইজার্ড একসাথে .NET Framework-এর দুটি ভিন্ন সংস্করণ – 3.5 এবং 4.5 ইনস্টল করতে দেয়। .NET Framework 4.5 ইনস্টলেশন সাধারণত কোনো সমস্যা সৃষ্টি করে না – এটি খুব সহজ, কিন্তু .NET Framework 3.5 ইনস্টলেশন সম্পর্কে একই কথা বলা যায় না।
দ্রষ্টব্য, উইন্ডোজ সার্ভার ২০১২ 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-এর বাইনারি ফাইলগুলো লোকাল বাইনারি ফাইল ক্যাশের অংশ নয় যা OS ইনস্টলেশন সময় সার্ভারের সিস্টেম ডিস্কে সংরক্ষিত হয়। এটি Windows Server 2012-এ Features on Demand কনসেপ্টের অধীনে করা হয়েছে যাতে OS নিজের জন্য ডিস্ক স্পেস কম ব্যবহার করে।
পাওয়ারশেল কমান্ড দিয়ে চেক করুন .NET Framework 3.5 লোকাল রিপোজিটরিতে আছে কিনা:
Get-WindowsFeature *Framework*
দেখতে পাচ্ছেন, প্রয়োজনীয় কম্পোনেন্টটি ডিলিট করা আছে (Install State: Removed)।
ডিফল্টভাবে Server Manager দিয়ে NET Framework 3.5 ইনস্টল করার সময় সিস্টেম ইন্টারনেট üzerে Windows Update ওয়েবসাইট থেকে প্রয়োজনীয় ফাইলগুলো পাওয়ার চেষ্টা করে (লোকাল WSUS সার্ভার থেকে না), এবং যদি সার্ভারের ইন্টারনেট এক্সেস না থাকে, তবে ইনস্টলেশন ফেল করে। ব্যবহারকারীকে OS ডিস্ট্রিবিউশনের পথ নির্দিষ্ট করতে হবে যেখান থেকে মিসিং কম্পোনেন্ট ইনস্টল করা যাবে।
.NET Framework 3.5 ম্যানুয়ালি ইনস্টল করতে Specify an alternative source path-এ ক্লিক করে উইন্ডোজ সার্ভার ২০১২ R2 ইনস্টলেশন ডিস্ক সম্বলিত ফোল্ডারের অ্যাল্টারনেটিভ পথ দিন।
টিপ। ইনস্টলেশন ডিস্কে আপনার ইনস্টলড OS-এর সাথে একই সংস্করণ থাকতে হবে (এডিশন, ভাষা এবং আপডেট গুরুত্বপূর্ণ)। যদি ইন্সটলার নির্দিষ্ট ফোল্ডারে প্রয়োজনীয় ফাইল না পায়, তবে নিচের সমাধান দেখুন।
পথ হিসেবে আপনি লোকাল ফোল্ডার (আমাদের উদাহরণে D:\source\sxs, যেখানে D:\ হলো উইন্ডোজ সার্ভার ডিস্ট্রিবিউশন সহ লোকাল 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 হলো উইন্ডোজ ডিস্ট্রিবিউশন সম্বলিত ডিরেক্টরির পথ যেখান থেকে প্রয়োজনীয় কম্পোনেন্টগুলো আছে
/LimitAccess Windows Update এক্সেস ব্লক করে
এই অপারেশনটি পাওয়ারশেলে .Net 3.5 ইনস্টল করার জন্য একইভাবে:
Add-WindowsFeature NET-Framework-Core -Source d:\sources\sxs
মূল উইন্ডোজ ডিস্ট্রিবিউশনের পথ সিস্টেমে নিয়মিতভাবে সেট করা যায়:
- রেজিস্ট্রি প্যারামিটার RepairContentServerSource যা HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing ব্রাঞ্চে থাকে
- অথবা গ্রুপ পলিসি Specify settings for optional component installation and component repair (পলিসি রেজিস্ট্রিতে এই সেটিং পরিবর্তন করে)
নোট। গ্রুপ পলিসি Specify settings for optional component installation and component repair নিচের GPO সেকশনে থাকে: Computer Configuration → Administrative Templates → System। পলিসি ইনেবল করুন এবং OS ডিস্ট্রিবিউশন সম্বলিত ডিরেক্টরির পথ নির্দিষ্ট করুন (Alternative source file path)। সার্ভার অনলাইন আপডেট চেষ্টা না করে সেটিতে Never attempt to download payload from Windows Update চেকবক্স চেক করুন।
.NET Framework 3.5 ইনস্টল হয়েছে কিনা যাচাই করতে C:\Windows\Microsoft.NET\Framework64 ডিরেক্টরিতে যান এবং নিশ্চিত করুন v3.5 ফোল্ডার তৈরি হয়েছে।
উপরে বর্ণিত .NET Framework 3.5.1 ইনস্টলেশন মেথডগুলো যদি কাজ না করে, তবে নিচের সমাধানগুলো ট্রাই করুন।
কিছু আপডেট ইনস্টলেশনের পর সিস্টেমে উইন্ডোজ সার্ভার ২০১২ R2-এর সংস্করণ (বিল্ড) আপনার ডিস্ট্রিবিউশন ইমেজে সংরক্ষিত OS ইমেজের সাথে মিলে না যেতে পারে। এই কেসে ইন্সটলার উইন্ডোজ কার্নেলের সংস্করণ তুলনা করে ডিপ্রিকেটেড কম্পোনেন্ট ইনস্টল করতে অস্বীকার করে। এই কেসে সাধারণত dism দিয়ে .NET Framework ইনস্টল করার সময় নিচের এরর হয়: 0x800f081f. The source files could not be found
সমস্যাটি ফিক্স করতে .Net অনলাইন মাইক্রোসফট সার্ভার থেকে ইনস্টল করার চেষ্টা করুন:
- বর্তমান Windows Update সেটিংস রেজ ফাইলে সেভ করুন (কী HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate)
- এই কী ডিলিট করুন এবং WU সার্ভিস রিস্টার্ট করুন:
net stop wuauserv & net start wuauserv - .Net অনলাইন ইনস্টলেশন চালান:
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All - ইনস্টলেশন 끝나লে রেজ ফাইল ইম্পোর্ট করে WU সেটিংস ফেরত আনুন এবং WindowsUpdate সার্ভিস আবার রিস্টার্ট করুন
টিপ। ভবিষ্যতে আপনি এই সার্ভারের C:\Windows\winsxs ফোল্ডার ব্যবহার করে একই OS সংস্করণवाले অন্যান্য সার্ভারে .Net FrameWork 3.5 ইনস্টল করতে পারেন। C:\Windows\winsxs ফোল্ডার কপি করে কাঙ্খিত সার্ভারে C:\tmp\winsxs ডিরেক্টরিতে রাখুন এবং কম্পোনেন্ট ইনস্টল করুন:
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 ইনস্টল করার চেষ্টা করুন।