.NET ফ্রেমওয়ার্ক সংস্করণ এবং পরিষেবা প্যাকগুলি কীভাবে ইনস্টল করা আছে তা আমি কীভাবে সনাক্ত করব?


289

এখানে অনুরূপ প্রশ্ন জিজ্ঞাসা করা হয়েছিল , তবে এটি নেট .৩.৩ এর সাথে সুনির্দিষ্ট ছিল। বিশেষত, আমি নিম্নলিখিতগুলি সন্ধান করছি:

  1. কোন নেট ফ্রেমওয়ার্ক সংস্করণ এবং পরিষেবা প্যাক ইনস্টল করা আছে তা নির্ধারণ করার সঠিক উপায় কী?
  2. রেজিস্ট্রি কীগুলির একটি তালিকা রয়েছে যা ব্যবহার করা যেতে পারে?
  3. ফ্রেমওয়ার্ক সংস্করণগুলির মধ্যে কোনও নির্ভরতা রয়েছে?


হ্যাঁ, তাই আমি প্রথমটির সম্পর্কে ইতিমধ্যে জানতাম (এটি আমার প্রশ্নের সাথে উল্লেখ করুন)। আমি অন্য একটি সম্পর্কে জানতাম না।
স্কট ডরম্যান

3
আমি প্রভাবিত হয়েছি কীভাবে এই প্রশ্ন (উত্তর সহ) এবং সমস্ত ঘনিষ্ঠভাবে সম্পর্কিত প্রশ্নগুলি এসকিউ মানগুলির উপস্থিতিটিকে সম্পূর্ণ উপেক্ষা করে - এটি এমনকি 4.5 এবং 4.5.4 এর মধ্যে পার্থক্য করে।
বসন্তকালীন

@ বসন্ত 7676, এই কারণে এসকিউ মানগুলির উপস্থিতি চিহ্নিত করে না কারণ হ'ল ফ্রেমওয়ার্কের কোন সংস্করণ ইনস্টল করা হয়েছে তা নির্ধারণের উদ্দেশ্যে, তারা প্রাসঙ্গিক নয়। আপনি যে প্রশ্নটি উল্লেখ করেছেন সেটি আসলে ".NET 4.0.2" ইনস্টল করা আছে কিনা তা নির্ধারণের চেষ্টা করছে। এখানে সমস্যাটি হ'ল নেট নেট 4.0.০.২ ছিল না, এটি একটি আপডেট (KB2544514) ছিল, ফ্রেমওয়ার্ক রিলিজ বা কোনও সার্ভিস প্যাক নয়। কোন আপডেটগুলি ইনস্টল করা আছে তা কীভাবে সনাক্ত করতে হয় সে সম্পর্কে আরও তথ্যের জন্য আপনি এমএসডিএন (এমএসডিএন.মাইক্রোসফ্ট্র / ওয়েবসাইট- লিবেরি /hh925567(v=vs.110).aspx ) এই নিবন্ধটি দেখতে পারেন ।
স্কট ডরম্যান

উত্তর:


365

ফ্রেমওয়ার্কের একটি নির্দিষ্ট সংস্করণ ইনস্টল করা আছে কিনা তা সনাক্ত করার আনুষ্ঠানিক উপায় হ'ল রেজিস্ট্রি ।

এখানে চিত্র বর্ণনা লিখুন

আপনি যে ফ্রেমওয়ার্ক সংস্করণটি সন্ধান করছেন তার উপর নির্ভর করে কোন রেজিস্ট্রি কীগুলির পরিবর্তনের প্রয়োজন:

ফ্রেমওয়ার্ক সংস্করণ রেজিস্ট্রি কী
-------------------------------------------------- ----------------------------------------
1.0 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \। নেট ফ্রেমওয়ার্ক \ নীতি \ v1.0 \ 3705 
1.1 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v1.1.4322 \ ইনস্টল করুন 
2.0 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v2.0.50727 \ ইনস্টল করুন 
3.0 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ ভি 3.0 \ সেটআপ \ ইনস্টলসস্যাক্সেস 
3.5 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v3.5 \ ইনস্টল করুন 
4.0 ক্লায়েন্ট প্রোফাইল এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v4 \ ক্লায়েন্ট \ ইনস্টল
৪.০ সম্পূর্ণ প্রোফাইল এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ ভি 4 \ সম্পূর্ণ \ ইনস্টল

সাধারণত আপনি খুঁজছেন:

"Install"=dword:00000001

.NET 1.0 ব্যতীত, যেখানে মানটি REG_SZএকটি সংখ্যার ( REG_DWORD) এর পরিবর্তে স্ট্রিং ( ) হয়।

পরিষেবা প্যাক স্তর নির্ধারণ একই ধরণের অনুসরণ করে:

ফ্রেমওয়ার্ক সংস্করণ রেজিস্ট্রি কী
-------------------------------------------------- ----------------------------------------
1.0 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ অ্যাক্টিভ সেটআপ led ইনস্টলড উপাদানসমূহ {70 78705f0d-e8db-4b2d-8193-982bdda15ecd \ \ সংস্করণ 
1.0 [1] এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট অ্যাক্টিভ সেটআপ led ইনস্টলড উপাদানসমূহ {এফডিসি 11 এ 6 এফ-17D1-48f9-9EA3-9051954BAA24 \ সংস্করণ 
1.1 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v1.1.4322 \ এসপি 
2.0 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v2.0.50727 \ এসপি 
3.0 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v3.0 \ এসপি 
3.5 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v3.5 \ এসপি 
4.0 ক্লায়েন্ট প্রোফাইল এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v4 \ ক্লায়েন্ট \ সার্ভিসিং
4.0 সম্পূর্ণ প্রোফাইল এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ ভি 4 4 সম্পূর্ণ \ সার্ভিসিং

[1] উইন্ডোজ মিডিয়া সেন্টার বা উইন্ডোজ এক্সপি ট্যাবলেট সংস্করণ

যেমন আপনি দেখতে পাচ্ছেন, আপনি উইন্ডোজ মিডিয়া সেন্টার বা উইন্ডোজ এক্সপি ট্যাবলেট সংস্করণে চলমান থাকলে নেট নেট 1.0 পরিবর্তনের জন্য এসপি স্তর নির্ধারণ করে। আবার .NET 1.0 স্ট্রিংয়ের মান ব্যবহার করে যখন অন্যরা সবাই DWORD ব্যবহার করে।

.NET 1.0 এর জন্য এই কীগুলির যে কোনওটির স্ট্রিং মানটির বিন্যাস #, #, ####, # of সর্বশেষ # হল সার্ভিস প্যাক স্তর।

আমি স্পষ্টভাবে এটির জন্য জিজ্ঞাসা করি না, আপনি যদি এই রেজিস্ট্রি কীগুলি ব্যবহার করবেন তবে আপনি ফ্রেমওয়ার্কের সঠিক সংস্করণ সংখ্যাটি জানতে চাইলে:

ফ্রেমওয়ার্ক সংস্করণ রেজিস্ট্রি কী
-------------------------------------------------- ----------------------------------------
1.0 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ অ্যাক্টিভ সেটআপ led ইনস্টলড উপাদানসমূহ {70 78705f0d-e8db-4b2d-8193-982bdda15ecd \ \ সংস্করণ 
1.0 [1] এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট অ্যাক্টিভ সেটআপ led ইনস্টলড উপাদানসমূহ {এফডিসি 11 এ 6 এফ-17D1-48f9-9EA3-9051954BAA24 \ সংস্করণ 
1.1 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v1.1.4322 
2.0 [2] এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v2.0.50727 \ সংস্করণ 
2.0 [3] এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v2.0.50727 ment বৃদ্ধি
3.0 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v3.0 \ সংস্করণ 
3.5 এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v3.5 \ সংস্করণ 
4.0 ক্লায়েন্ট প্রোফাইল HKLM \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ work NDP \ v4 \ সংস্করণ 
৪.০ সম্পূর্ণ প্রোফাইল এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ v4 \ সংস্করণ 

[1] উইন্ডোজ মিডিয়া সেন্টার বা উইন্ডোজ এক্সপি ট্যাবলেট সংস্করণ
[2]। নেট 2.0 এসপি 1
[3]। নেট 2.0 মূল প্রকাশ (আরটিএম)

আবার .NET 1.0 স্ট্রিংয়ের মান ব্যবহার করে যখন অন্যরা সবাই DWORD ব্যবহার করে।

অতিরিক্ত নোট

  • .NET 1.0 এর জন্য এই কীগুলির মধ্যে দুটিতে স্ট্রিং মানটির বিন্যাস রয়েছে #,#,####,##,#,####স্ট্রিং এর অংশ ফ্রেমওয়ার্ক সংস্করণ।

  • .NET 1.1 এর জন্য, আমরা নিজেই রেজিস্ট্রি কী ব্যবহার করি যা সংস্করণ নম্বরটি উপস্থাপন করে।

  • অবশেষে, যদি আপনি নির্ভরতাগুলি দেখে থাকেন, .NET 3.0 .NET 2.0 এ অতিরিক্ত কার্যকারিতা যুক্ত করে তাই নেট। 2.0 এবং .NET 3.0 উভয়ই সঠিকভাবে বলতে পারেন যে নেট নেট ইনস্টলড আছে installed তেমনি, .NET 3.5 .NET 2.0 এবং .NET 3.0 এ অতিরিক্ত কার্যকারিতা যুক্ত করে, তাই। নেট 2.0, .NET 3.0, এবং নেট 3 সমস্তই সঠিকভাবে বলা যায় যে নেট নেট 3.5 ইনস্টল করা আছে ইনস্টল করার জন্য মূল্যায়ন করা উচিত।

  • .NET 4.0 সিএলআর (সিএলআর সংস্করণ 4.0) এর একটি নতুন সংস্করণ ইনস্টল করে যা সিএলআর 2.0 এর সাথে পাশাপাশি চলতে পারে।

.NET 4.5 এর জন্য আপডেট

v4.5.NET 4.5 ইনস্টল করা থাকলে রেজিস্ট্রিতে কোনও কী থাকবে না । পরিবর্তে আপনাকে চেক করতে হবে HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Fullকীটিতে কোনও মান আছে কি না Release। যদি এই মানটি উপস্থিত থাকে, .NET 4.5 ইনস্টল করা আছে, অন্যথায় এটি হয় না। আরও বিশদ এখানে এবং এখানে পাওয়া যাবে


1
এটি ভিস্তার x64 এর আওতায় নেট নেট 1.1 এর জন্য কাজ করে না। কোনও v1.1.x কী সম্ভাব্য জায়গায় নেই। ধারনা?
ক্রিস হাইনেস

7
.NET 4.0 এর কীগুলি বেশ সঠিক নয়। আমি এই কীগুলি দেখছি: এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ ভি 4 \ ক্লায়েন্ট H ইনস্টল এইচকেএলএম \ সফ্টওয়্যার \ মাইক্রোসফ্ট \ নেট ফ্রেমওয়ার্ক সেটআপ \ এনডিপি \ ভি 4 \ সম্পূর্ণ \ ইনস্টল করুন ভি 4.0 ফোল্ডারে কেবল একটি কী রয়েছে , (ডিফল্ট) অবমূল্যায়নের মান সহ।
এলোমেলো এঙ্গি

2
এই পোস্টটি 4.5 টি কভার করে না এবং 4.5 ইনস্টল থাকা সত্ত্বেও রেজিস্ট্রিতে তালিকাভুক্ত নয়।
ক্লাস মেলবর্ন

37
ম্যান, মাইক্রোসফ্টের কেউ কি একটি সংস্করণ স্যুইচ যুক্ত করার কথা চিন্তা করে?
gnuchu

2
এটা একটা রসিকতা. আমি বিশ্বাস করতে পারি না যে এতো সুন্দর!
অ্যালেক্স বার্থ

17

নিম্নলিখিত জ্ঞান বেস নিবন্ধে এই প্রশ্নের একটি সরকারী মাইক্রোসফ্ট উত্তর আছে:

আর্টিকেল আইডি: 318785 - শেষ পর্যালোচনা: নভেম্বর 7, 2008 - সংশোধন: 20.1 .NET ফ্রেমওয়ার্কের কোন সংস্করণ ইনস্টল করা আছে এবং পরিষেবা প্যাকগুলি প্রয়োগ করা হয়েছে কিনা তা নির্ধারণ করবেন

দুর্ভাগ্যক্রমে, এটি কাজ করে বলে মনে হচ্ছে না, কারণ 2.0 ডিরেক্টরিতে mscorlib.dll সংস্করণটির একটি 2.0 সংস্করণ রয়েছে এবং 3.5 এসপি 1 ইনস্টল থাকা সত্ত্বেও 3.0 বা 3.5 ডিরেক্টরিতে কোনও mscorlib.dll সংস্করণ নেই ... কেন? মাইক্রোসফ্টের সরকারী উত্তরটি কি এত ভুল তথ্য দেওয়া হবে?


2
+1 - মনে হচ্ছে মাইক্রোসফ্ট সেই পৃষ্ঠাটি আপডেট করেছে যেহেতু আপনি মূলত এর সাথে লিঙ্ক করেছেন। সুতরাং এটি দেখে মনে হচ্ছে এটি বিষয়টির অন্যতম সেরা সরকারী উত্স হতে পারে।
jpierson

2
এটি কেবল 4.0
ইউজার 316117

16

ফ্রেমওয়ার্ক 4 বিটা একটি পৃথক রেজিস্ট্রি কীতে ইনস্টল করে।

using System;
using System.Collections.ObjectModel;
using Microsoft.Win32;

class Program
{
    static void Main(string[] args)
    {
        foreach(Version ver in InstalledDotNetVersions())
            Console.WriteLine(ver);

        Console.ReadKey();
    }


    public static Collection<Version> InstalledDotNetVersions()
    {
        Collection<Version> versions = new Collection<Version>();
        RegistryKey NDPKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP");
        if (NDPKey != null)
        {
            string[] subkeys = NDPKey.GetSubKeyNames();
            foreach (string subkey in subkeys)
            {
                GetDotNetVersion(NDPKey.OpenSubKey(subkey), subkey, versions);
                GetDotNetVersion(NDPKey.OpenSubKey(subkey).OpenSubKey("Client"), subkey, versions);
                GetDotNetVersion(NDPKey.OpenSubKey(subkey).OpenSubKey("Full"), subkey, versions);
            }
        }
        return versions;
    }

    private static void GetDotNetVersion(RegistryKey parentKey, string subVersionName, Collection<Version> versions)
    {
        if (parentKey != null)
        {
            string installed = Convert.ToString(parentKey.GetValue("Install"));
            if (installed == "1")
            {
                string version = Convert.ToString(parentKey.GetValue("Version"));
                if (string.IsNullOrEmpty(version))
                {
                    if (subVersionName.StartsWith("v"))
                        version = subVersionName.Substring(1);
                    else
                        version = subVersionName;
                }

                Version ver = new Version(version);

                if (!versions.Contains(ver))
                    versions.Add(ver);
            }
        }
    }
}

1
প্রশাসনিক নন ব্যবহারকারীদের সুরক্ষা ব্যতিক্রম এড়ানোর Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP", true)জন্য পরিবর্তন Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP")করুন।
জন কেজ

দুর্দান্ত, আমি লিনকপ্যাড ব্যবহার করেছি এবং এটি আমাকে নিখুঁত ফলাফল দিয়েছে! share.linqpad.net/5cjihh.linq
user917170

এটি আশ্চর্যজনক যে আপনি ছোট বিবরণ (যেমন কোন সার্ভিস প্যাক সংস্করণ ইনস্টল করা আছে) সম্পর্কে ভাগ করেন তবে আরও গুরুত্বপূর্ণ তথ্য (যদি ফ্রেমওয়ার্কটি কেবল আংশিক বা সম্পূর্ণভাবে ইনস্টল করা থাকে) আপনার কোড দ্বারা উপেক্ষা করা হবে !! রেজিস্ট্রি কীগুলি "ক্লায়েন্ট" এবং "সম্পূর্ণ" এর মতো আচরণ করা ভুল বলে মনে হয় যে তারা একই। যদি কেবলমাত্র "ক্লায়েন্ট" কীটি উদাহরণস্বরূপ সিস্টেমের জন্য প্রস্থান করে e ওয়েবে উপলব্ধ হবে না। এই গুরুত্বপূর্ণ তথ্যটিও আপনার কোড দ্বারা ফিরিয়ে দেওয়া উচিত! যদি ব্যবহারকারী কন্ট্রোল প্যানেলে "। নেট ফ্রেমওয়ার্ক 4 প্রসারিত" আনইনস্টল করেন তবে বেশ কয়েকটি অ্যাসেমব্লি অনুপস্থিত থাকবে।
এলমিউ

8

আমি আমার সিস্টেমে .NET সংস্করণ 4.5.2 ইনস্টল করার জন্য সনাক্ত করতে চেয়েছিলাম এবং আমি এসফট। নেট সংস্করণ সনাক্তকারী এর চেয়ে ভাল কোনও সমাধান খুঁজে পাইনি ।

এই সরঞ্জামের স্ন্যাপশটটি বিভিন্ন .NET সংস্করণগুলি দেখায়:

এই সরঞ্জামটির স্ন্যাপশট বিভিন্ন .NET সংস্করণ দেখাচ্ছে


7

এর subkeys গণনা করুন HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP। প্রতিটি সাবকি একটি। নেট সংস্করণ। এটি Install=1মেশিনে উপস্থিত থাকলে এর একটি মান থাকতে হবে, একটি এসপি মান যা সার্ভিস প্যাকটি দেখায় এবং MSI=1এটি যদি একটি এমএসআই ব্যবহার করে ইনস্টল করা থাকে তবে একটি মান। (উইন্ডোজ ভিস্টায় .NET 2.0 এর উদাহরণটি শেষের হিসাবে নেই, কারণ এটি ওএসের অংশ।


আমি আমার মেশিনে এই কীটি খুঁজে পাইনি (এক্সপি প্রো), তবে আমার কাছে এটি ছিল: এইচকেএলএম OF সফটওয়্যার \ মাইক্রোসফ্ট \। নেট ফ্রেমওয়ার্ক। তবে আপনি যে বিভিন্ন মান বর্ণনা করেছেন তা আমার পক্ষে বিদ্যমান নয়।
চার্লি 21

.NET 1.1 বা পরে ইনস্টল করা থাকলে আপনার এই কীটি থাকা উচিত। আপনার উল্লিখিত কীটি কেবল নেট নেট 1.0 এর জন্য ব্যবহৃত হয়েছিল।
স্কট ডরম্যান

রেগ ক্যোয়ারী "HKEY_LOCAL_MACHINE
OF

5

একটি 64-বিট ওএসের জন্য, পথটি হবে:

HKEY_LOCAL_MACHINE\SOFTWARE\wow6432Node\Microsoft\NET Framework Setup\NDP\

10
এটি কেবল "কিছুটা" সত্য। উইন্ডোজ 64৪-বিট সংস্করণে রেজিস্ট্রি 32-বিট এবং -৪-বিট কীগুলিতে বিভক্ত (32-বিট কীগুলির অনেকগুলি 64-বিট কীগুলির একই নাম রয়েছে)। Wow6432Nodeরেজিস্ট্রি কী WOW64 রেজিস্ট্রি প্রতিফলক, অংশ যা আয়না 64-বিট এবং 32 বিট রেজিস্ট্রি দৃশ্যের মধ্যে নির্দিষ্ট কী ও মান। রেজিস্ট্রি স্বয়ংক্রিয়ভাবে পুনঃনির্দেশ এবং আয়না পরিচালনা করার কারণে সরাসরি এই কীটি অ্যাক্সেস করার দরকার নেই।
স্কট ডোরম্যান

5

.NET 4.5.1 এর জন্য আপডেট

এখন যে .NET 4.5.1 পাওয়া যায় রেজিস্ট্রিতে রিলিজ নামের কীটির প্রকৃত মানটি কেবল এটির অস্তিত্ব নয়, যাচাই করা দরকার। 378758 এর মানটির অর্থ। .NET ফ্রেমওয়ার্ক 4.5.1 ইনস্টল করা আছে। তবে, এখানে বর্ণিত হিসাবে এই মানটি উইন্ডোজ 8.1 এ 378675।


5

একটি জিইউআই সরঞ্জাম উপলব্ধ রয়েছে, এ্যাসফট। নেট সংস্করণ সনাক্তকারী , যা সর্বদা অত্যন্ত নির্ভরযোগ্য প্রমাণিত হয়েছে। এটি কমান্ড লাইনে এক্সএমএল আউটপুট ফাইলের নাম উল্লেখ করে এক্সএমএল ফাইল তৈরি করতে পারে।

আপনি এটি অটোমেশনের জন্য ব্যবহার করতে পারেন। এটি একটি ক্ষুদ্রতর প্রোগ্রাম, একটি নন-নেট নির্ভর ভাষাতে লেখা এবং এটি ইনস্টলেশন প্রয়োজন হয় না।


4

আমার কম্পিউটারে NET ফ্রেমওয়ার্কের কোন সংস্করণটি ছিল তা ঠিক অনুসন্ধান করার দরকার ছিল এবং আমি যা করেছি তা কন্ট্রোল প্যানেলে গিয়ে "একটি প্রোগ্রাম আনইনস্টল করুন" বিকল্পটি নির্বাচন করা হয়েছিল। এর পরে, আমি প্রোগ্রামগুলি নাম অনুসারে বাছাই করে মাইক্রোসফ্ট। নেট ফ্রেমওয়ার্ক 4 ক্লায়েন্ট প্রোফাইল পেয়েছি।


1
ধন্যবাদ - আমি চেষ্টা করা প্রতিটি "সমাধান" ত্রুটিযুক্ত ছিল এবং কাজ করবে না। এটা করেছে।
ব্যবহারকারী 20493

আমি এই তথ্যটি সন্ধান করার কারণটি হ'ল যে কোনও প্রোগ্রাম আনইনস্টল করার অন্তর্গত জিনিসগুলি সম্পূর্ণ অবিশ্বাস্য, কমপক্ষে এটি নেট ফ্রেমওয়ার্কের ক্ষেত্রে আসে।
tobbenb3

3

ইনস্টলিত .NET ফ্রেমওয়ার্ক সংস্করণগুলি পাওয়ার জন্য এখানে পাওয়ারশেল স্ক্রিপ্ট রয়েছে

function Get-KeyPropertyValue($key, $property)
{
    if($key.Property -contains $property)
    {
        Get-ItemProperty $key.PSPath -name $property | select -expand $property
    }
}

function Get-VersionName($key)
{
   $name = Get-KeyPropertyValue $key Version
   $sp = Get-KeyPropertyValue $key SP
   $install = Get-KeyPropertyValue $key Install
   if($sp)
   {
        "$($_.PSChildName) $name SP $sp"
   }
   else{
    "$($_.PSChildName) $name"
   }
}

function Get-FrameworkVersion{
   dir "hklm:\SOFTWARE\Microsoft\NET Framework Setup\NDP\" |? {$_.PSChildName -like "v*"} |%{
    if( $_.Property -contains "Version")
    {
        Get-VersionName $_
    }
    else{
        $parent = $_
        Get-ChildItem $_.PSPath |%{
            $versionName = Get-VersionName $_
            "$($parent.PSChildName) $versionName"
            }
        }
    }
}


$v4Directory = "hklm:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"
if(Test-Path $v4Directory)
{
    $v4 = Get-Item $v4Directory
    $version = Get-KeyPropertyValue $v4 Release
    switch($version){
        378389 {".NET Framework 4.5"; break;}
        378675 {".NET Framework 4.5.1 installed with Windows 8.1 or Windows Server 2012 R2"; break;}
        378758 {".NET Framework 4.5.1 installed on Windows 8, Windows 7 SP1, or Windows Vista SP2"; break;}
        379893 {".NET Framework 4.5.2"; break;}
        { 393295, 393297 -contains $_} {".NET Framework 4.6"; break;}
        { 394254, 394271 -contains $_} {".NET Framework 4.6.1"; break;}
        { 394802, 394806 -contains $_} {".NET Framework 4.6.2"; break; }
    }
}

এটি কীভাবে: NET ফ্রেমওয়ার্ক সংস্করণ ইনস্টল করা আছে তা নির্ধারণের উপর ভিত্তি করে লেখা হয়েছিল । ইনস্টল .NET ফ্রেমওয়ার্ক সংস্করণ সম্পর্কে তথ্য পেতে দয়া করে গেট-ফ্রেমওয়ার্ক ভার্সন () ফাংশনটি ব্যবহার করুন।


2

SignumFramework (যা আপনি একা একা ব্যবহার করতে পারেন) থেকে Signum.Utilities লাইব্রেরি ব্যবহার করে , আপনি এটিকে সুন্দরভাবে এবং নিজের দ্বারা রেজিস্ট্রি না করেই পেতে পারেন:

AboutTools.FrameworkVersions().ToConsole();
//Writes in my machine:
//v2.0.50727 SP2
//v3.0 SP2
//v3.5 SP1

2
এই পদ্ধতির কোডটির দিকে তাকানো, এটি রেজিস্ট্রি কীগুলি ব্যবহার করে এবং নেট .১.০ সম্পূর্ণরূপে মিস করবে এবং এটি .NET 2.0 (আরটিএম) এবং .NET 2.0 এসপি 1 এর মধ্যে পার্থক্য করে না যতক্ষণ এটি সম্পূর্ণ সম্পূর্ণ নয়। এটি ফ্রেমওয়ার্ক সংস্করণগুলির মধ্যে নির্ভরতাও আমলে নেয় না।
স্কট ডরম্যান

2
ভাল সমাধান নয়। আপনি যখন প্রায় 3 লাইনের কোডগুলিতে একই কাজটি করতে পারেন কেবল তখনই নেট সংস্করণ পাওয়ার জন্য একটি সম্পূর্ণ লাইব্রেরি ডাউনলোড করার কোনও উপযুক্ত কারণ নেই। প্রোগ্রামার হিসাবে আপনি "নিজেরাই রেজিস্ট্রি নিয়ে নিজেকে মোকাবিলা করতে" সক্ষম হবেন।
TheSmurf

3
পুনঃটুইট করেছেন .NET 3.0 প্রবর্তিত হওয়ার সময় এমএসের এটি একটি নেট নেট এপিআইতে আবৃত করা উচিত (যত তাড়াতাড়ি আমাদের একই সিএলআরতে এফএক্সের একাধিক স্তর ছিল)। আমি বরং আমার অ্যাপ্লিকেশনটিতে একটি ইউটিলিটি লাইব্রেরি ব্যবহার করব, তারপরে যখন 4.1, 6.1, 7.100 আসে, আমি কেবল লাইব্রেরিটি আপডেট করতে পারি এবং আমার অ্যাপ্লিকেশনটি নেট এর কোন স্তরের জন্য একটি কনফিগার এন্ট্রি প্রয়োজন। লাইব্রেরির কোনও কাজ না করলে অবশ্যই এই যুক্তিটি জল ধরে না।
yzorg

1

কীভাবে করবেন তা দেখুন : কোন নেট ফ্রেমওয়ার্ক সংস্করণ ইনস্টল করা হয়েছে তা নির্ধারণ করুন (এমএসডিএন)।

এমএসডিএন একটি ফাংশন উদাহরণ প্রস্তাব করে যা মনে হয় যে সংস্করণ 1-4 এর জন্য কাজটি করে। নিবন্ধ অনুসারে, পদ্ধতি আউটপুটটি হ'ল:

v2.0.50727  2.0.50727.4016  SP2
v3.0  3.0.30729.4037  SP2
v3.5  3.5.30729.01  SP1
v4
  Client  4.0.30319
  Full  4.0.30319

নোট করুন যে "সংস্করণ 4.5 এবং তার পরে" এর জন্য আরও একটি ফাংশন রয়েছে।


1

উইন্ডোজ 7 এ (এটি উইন্ডোজ 8 এর জন্যও কাজ করা উচিত, তবে আমি এটি পরীক্ষা করি নি):

কমান্ড প্রম্পটে যান

কমান্ড প্রম্পটে যাওয়ার পদক্ষেপ:

  1. স্টার্ট মেনু ক্লিক করুন
  2. অনুসন্ধান বাক্সে, "সেন্টিমিডি" টাইপ করুন (উদ্ধৃতি ব্যতীত)
  3. খুলুন cmd.exe

সেমিডিতে, এই কমান্ডটি টাইপ করুন

wmic /namespace:\\root\cimv2 path win32_product where "name like '%%.NET%%'" get version

এটি ইনস্টল করা নেট ফ্রেমওয়ার্কের সর্বশেষতম সংস্করণ দেয়।

এর জন্য রেমন্ড.সি.সি .


1
এই লাইন চালাচ্ছি cmd আমাকে দেয় ERROR: Description = Invalid namespace
মেমার্ক

আমিও পেতেERROR: Description = Invalid namespace
পিটার

এই আদেশটি আমাকে ত্রুটি দেয়! (উইন্ডোজ 7 টার্মিনাল থেকে মৃত্যুদন্ড কার্যকর করা হয়েছে)
স্মৃতি 5

থানকিউ মেমার্ক, পিটার, স্মৃতি অবহিত করার জন্য।
মায়াঙ্ক আগরওয়াল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.