.NET का कौन सा संस्करण बताने का मूर्खतापूर्ण तरीका है एक उत्पादन विंडोज सर्वर पर स्थापित किया गया है?


99

यह प्रश्न इतना प्रोग्रामिंग से संबंधित नहीं है क्योंकि यह तैनाती से संबंधित है।

मैं खुद को अपनी कंपनी में समूह के साथ बहुत बातचीत करते हुए देखता हूं जिसका काम हमारे उत्पादन विंडोज सर्वर को बनाए रखना और उन पर हमारे कोड को तैनात करना है। कानूनी और अनुपालन कारणों के लिए, मेरे पास सर्वर पर प्रत्यक्ष दृश्यता या कोई नियंत्रण नहीं है, इसलिए एकमात्र तरीका मैं बता सकता हूं कि .NET का कौन सा संस्करण (एस) उनमें से किसी पर स्थापित किया गया है जो मैं उस समूह को देता हूं।

अब तक, मैं जिन तरीकों के बारे में सोच सकता हूं, वे बताएंगे कि कौन से संस्करण स्थापित हैं (1.1 या 2.0 मिलान वाले प्रशासनिक टूल की जांच करें, "प्रोग्राम जोड़ें / निकालें" सूची में प्रविष्टियों की जांच करें, अस्तित्व की जांच करें सी के तहत निर्देशिका: \ Windows \ Microsoft.NET) त्रुटिपूर्ण हैं (मैंने कम से कम एक मशीन को 2.0 के साथ देखा है, लेकिन प्रशासनिक उपकरण के तहत कोई 2.0 प्रविष्टियां - और यह विधि आपको 3.0+ "प्रोग्राम जोड़ें / निकालें" सूची के बारे में कुछ नहीं बताती है। वास्तविकता के साथ सिंक से बाहर निकल सकते हैं, और निर्देशिकाओं के अस्तित्व का कोई मतलब नहीं है)।

यह देखते हुए कि मुझे आमतौर पर इन चीजों को पहले से जानने की जरूरत है (यह जानते हुए कि "उफ़, यह आपके पास उन सभी संस्करणों और सर्विस पैक की ज़रूरत नहीं है" वास्तव में कम रखरखाव वाली खिड़कियों के साथ अच्छा काम नहीं करता है) और मुझे करना है चेकिंग "प्रॉक्सी द्वारा" क्योंकि मैं सीधे सर्वरों पर नहीं पहुंच सकता, यह बताने का मूर्खतापूर्ण तरीका क्या है कि .NET का कौन सा संस्करण प्रोडक्शन विंडोज सर्वर पर स्थापित है? अधिमानतः कुछ आंतरिक तरीके से ऐसा करने के लिए कि फ्रेमवर्क क्या स्थापित करता है क्योंकि यह जल्दी हो जाएगा और लोड करने के लिए किसी प्रकार की उपयोगिता की आवश्यकता नहीं है और यह भी एक तरीका है जो निश्चित रूप से विफल हो जाएगा यदि फ्रेमवर्क ठीक से स्थापित नहीं हैं, लेकिन अभी भी फाइल हैं (अर्थात , वहाँ एक निर्देशिका और gacutil.exe वहाँ पर काम है, लेकिन फ्रेमवर्क का वह संस्करण वास्तव में "स्थापित" नहीं है)

संपादित करें: फ्रेमवर्क (ओं) में निर्मित इसे करने के लिए एक अच्छे फुलप्रूफ इंट्रेंसिक तरीके की अनुपस्थिति में, क्या किसी को एक अच्छे, हल्के, बिना इंस्टॉल किए आवश्यक प्रोग्राम के बारे में पता है जो यह पता लगा सकता है? मैं कल्पना कर सकता हूं कि कोई व्यक्ति आसानी से एक लिख सकता है लेकिन अगर पहले से मौजूद है, तो यह और भी बेहतर होगा।


1
मैंने कुछ समय पहले इस पर गौर किया और ऐसा करने का कोई निश्चित तरीका नहीं खोज सका। मुझे यह देखने के लिए दिलचस्पी होगी कि हमें क्या जवाब मिले।
केव

जवाबों:


54

आपको उस सर्वर पर IE खोलना चाहिए जिसके लिए आप इस जानकारी की तलाश कर रहे हैं, और इस साइट पर जाएं : http://www.hanselman.com/smalldotdotnet/

बस इतना ही लगता है।

साइट में एक स्क्रिप्ट होती है जो आपके ब्राउज़र के "UserAgent" को देखती है और आपके द्वारा स्थापित .NET फ्रेमवर्क के किस संस्करण (यदि कोई है) को स्थापित करती है और इसे स्वचालित रूप से प्रदर्शित करती है (यदि आपने चुना तो कुल आकार की गणना करता है) .NET फ्रेमवर्क डाउनलोड करने के लिए)।


19
- अगर यह एक उत्पादन सर्वर है, तो उसके पास भी इसका उपयोग नहीं हो सकता है - ठेस सर्वर पर यादृच्छिक साइटों को ब्राउज़ करना एक बड़ा नहीं-नहीं है - यह साइट केवल उच्चतम .Net संस्करण देती है; वह उन सभी को चाहता है
फ्रैंकी पेनोव

1
समस्या, जैसा दिखता है, उस दृष्टिकोण के साथ यह है कि यह केवल आपको बताता है कि आपके पास नवीनतम संस्करण क्या है। मैं 2.0, 3.0, 3.5 और (दुख की बात है) भी 1.1 में कोड तैनात करता हूं। यद्यपि लक्ष्य सब कुछ अंततः प्राप्त करना है, लेकिन अब के लिए दुखद बात यह है कि मुझे सभी अलग-अलग समानांतर संस्करणों की आवश्यकता है।
टॉम किड

1
यद्यपि मैं मानता हूं कि यह समाधान उत्पादन सर्वरों के लिए उपयुक्त नहीं हो सकता है, मैंने इसे बढ़ा दिया क्योंकि यह निश्चित रूप से विकास मशीनों के लिए सबसे सरल और तेज तरीका है (जिस पर मैंने इसका अक्सर उपयोग किया है)। स्क्रिप्ट के वर्तमान संस्करण ने .NET के सभी विभिन्न संस्करणों का सफलतापूर्वक पता लगाया जो मैंने स्थापित किया था।
kmote

प्रदान किए गए URL से उपयोगकर्ता एजेंट स्ट्रिंग: मोज़िला / 5.0 (संगत; MSIE 10.0; Windows NT 6.1; WOW64; त्रिशूल / 6.0) । बू-गा-गा, इसलिए, .NET फ्रेमवर्क संस्करण क्या स्थापित हैं? आईई को संगत मोड में स्विच करने के लिए अपेक्षित परिणाम प्राप्त करने की आवश्यकता है।
मॉस्क

1
स्कॉट हैंसेलमैन ने निश्चित रूप से अपने बोना फाइड्स की स्थापना की है, इसलिए मैं इसे "यादृच्छिक साइट" नहीं कहूंगा। (इसके अलावा वह स्रोत कोड उपलब्ध कराता है।) लेकिन इस ऐप के लिए इंटरनेट कनेक्शन की आवश्यकता होती है, जो लॉक-इन-ए-फैराडे-केज होस्ट की अक्सर कमी करता है।
रॉबर्ट कैलहॉन

24

आप इस ब्लॉग प्रविष्टि के अनुसार रजिस्ट्री और कुछ अन्य चीजों को प्रोग्राम कर सकते हैं ।

देखने के लिए रजिस्ट्री कुंजी है

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\...]

मैं नहीं बता सकता - क्या यह भी 1.1 को कवर करता है?
टॉम किड

1
मैं अपने सिस्टम पर इस रजिस्ट्री कुंजी के तहत 1.1 विवरण देख सकता हूं, इसलिए मैं कहूंगा कि यह 1.1 को कवर करता है
Niall Connaughton

हाँ, नीचे देख रहे हैं ... \ NDP \ v4 \ Full \, तो संस्करण में मैं देख सकता था कि मेरे पास v 4.5.5 था ... लक्ष्य विचलन 4.0.0 पर सेट है
ऑफ द गोल्ड

19

यहाँ से उत्तर मिला :

जाँच करें कि कौन सा .NET फ्रेमवर्क संस्करण स्थापित है

कमांड प्रॉम्प्ट खोलें और नीचे दी गई कमांड लाइनों में से एक पेस्ट करें

dir %WINDIR%\Microsoft.Net\Framework\v*

या

dir %WINDIR%\Microsoft.Net\Framework\v* /O:-N /B

वास्तव में मुझे क्या चाहिए
पांडा ५13 ’

13
4.0 के स्थान पर 4.5 और 4.5.1 स्थापित हैं, इसलिए यह समाधान भ्रामक हो सकता है। msdn.microsoft.com/en-us/library/5a4x27ek%28v=vs.110%29.aspx
Nick Patsaris

15

CodeTrawler के उत्तर के अनुसार , समाधान को एक एक्सप्लोरर विंडो में दर्ज करना है:

% Systemroot% \ Microsoft.NET \ फ्रेमवर्क

फिर खोजें:

mscorlib.dll

... और प्रत्येक परिणाम के लिए संस्करण टैब पर राइट-क्लिक / जाएं।


यह संस्करण 4 / 4.5+ के बीच अंतर करने का सबसे आसान तरीका प्रतीत होता है, अन्यथा, जो स्थापित है, उसके अवलोकन के लिए, @ K.Dias ने मेरे लिए काम किया: dir% windir% \ microsoft.net \ ढांचा \ v * / O : -एन / बी
टिमोथी ली रसेल

15

Microsoft तरीका यह है:

MSDN: निर्धारित करने के लिए कैसे कौन सा .नेट फ्रेमवर्क संस्करण स्थापित कर रहे हैं (जो निम्न रजिस्ट्री कुंजी में निर्देशित करता: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\...)

यदि आप मूर्खतापूर्ण चाहते हैं तो यह दूसरी बात है। मुझे फ्रेमवर्क फ़ोल्डर के xcopy के बारे में चिंता नहीं होगी। अगर किसी ने किया कि मैं कंप्यूटर को तोड़ने पर विचार करूंगा।

सबसे मूर्खतापूर्ण तरीका एक छोटा प्रोग्राम लिखना होगा जो .NET के प्रत्येक संस्करण और उन पुस्तकालयों का उपयोग करता है जिनके बारे में आप परवाह करते हैं और उन्हें चलाते हैं।

कोई स्थापित विधि के लिए, PowerBasic एक उत्कृष्ट उपकरण है। यह छोटे नहीं रनटाइम आवश्यक exe है बनाता है। यह ऊपर एमएस केबी लेख में वर्णित चेक को स्वचालित कर सकता है।


यह विधि अब 4.5.1 और बाद के संस्करणों के लिए काम नहीं करती है
स्कॉट सोलमर

@ Okuma.Scott - मैंने आधिकारिक MSDN निर्देशों के लिंक को अपडेट कर दिया है।
15


3

यदि आप जिस मशीन को जांचना चाहते हैं, उसमें .NET SDK स्थापित है, तो आप SDK कमांड प्रॉम्प्ट का उपयोग कर सकते हैं और प्रोग्राम चला सकते हैं CLRVer.exe


1
क्या उस निष्पादन योग्य को तैनात करने के साथ कोई (लाइसेंसिंग) मुद्दे हैं? इसके बोलने की कोई निर्भरता नहीं है।

1
क्लेवर बेकार है, क्योंकि यह झूठ है। यह 4.0 कहता है। * 4.5 / 4.6 के लिए
रोमन स्टार्कोव 3


1

OneTouch परिनियोजन पूर्व-अपेक्षित सभी का पता लगाने और स्थापना करेगा। अपने स्वयं के रोल की कोशिश करने की तुलना में पूर्व-निर्मित समाधान के साथ जाना शायद सबसे अच्छा है। अपने स्वयं के रोल करने की कोशिश करने से समस्याएं हो सकती हैं क्योंकि जो कुछ भी आप कुंजी रखते हैं वह एक हॉटफ़िक्स या सर्विस पैक के साथ बदल सकता है। संभवतः Microsoft के पास यह निर्धारित करने के लिए कुछ अनुमान है कि कौन सा संस्करण चल रहा है।


1

.NET 3.0 का पता लगाने का आधिकारिक तरीका यहां वर्णित है

http://msdn.microsoft.com/en-us/library/aa480198.aspx

फ़्लेव्ड, क्योंकि इसके लिए कॉल करने वाले के पास रजिस्ट्री एक्सेस की अनुमति होनी चाहिए।

MSDN ने उपयोगकर्ता एजेंट स्ट्रिंग की जाँच करके .NET 3.5 का पता लगाने के लिए एक तकनीक का भी उल्लेख किया है:

http://msdn.microsoft.com/en-us/library/bb909885.aspx

मुझे लगता है कि माइक्रोसॉफ्ट को इससे बेहतर काम करना चाहिए था।


1

इसके अलावा, स्टैक ओवरफ्लो प्रश्न देखें। कैसे पता लगाएं कि .NET फ्रेमवर्क संस्करण और सर्विस पैक क्या स्थापित हैं? जिसमें यह भी उल्लेख है:

ज्ञानकोष लेख में इस सवाल का एक आधिकारिक Microsoft उत्तर है [यह निर्धारित करने के लिए कि Microsoft .NET फ्रेमवर्क के कौन से संस्करण और सर्विस पैक स्तर स्थापित हैं] [2]

लेख आईडी: ३१ 2008 ID ID५ - अंतिम समीक्षा: 7 नवंबर २०० - - संशोधन: २०.१ यह कैसे तय करें कि .NET फ्रेमवर्क के कौन से संस्करण स्थापित हैं और क्या सर्विस पैक लागू किए गए हैं।

दुर्भाग्य से, यह काम नहीं करता है, क्योंकि mscorlib.dll2.0 निर्देशिका में संस्करण में 2.0 संस्करण है, और mscorlib.dll3.0 या 3.5 निर्देशिकाओं में कोई संस्करण नहीं है, भले ही 3.5 SP1 स्थापित है ... आधिकारिक Microsoft उत्तर क्यों होगा इतनी गलत सूचना?


1

.NET फ्रेमवर्क 4.5 और बाद के संस्करणों (4.5.2 के माध्यम से परीक्षण) के लिए अपने सर्वर के समर्थन का निर्धारण करने के लिए : यदि आपके पास सर्वर पर रजिस्ट्री एक्सेस नहीं है , लेकिन उस सर्वर पर एप्लिकेशन प्रकाशित अधिकार हैं, तो एक तुच्छ के साथ एक एमवीसी 5 ऐप बनाएं नियंत्रक, इस तरह:

using System.Web.Mvc;

namespace DotnetVersionTest.Controllers
{
    public class DefaultController : Controller
    {
        public string Index()
        {
            return "simple .NET version test...";
        }
    }
}

फिर अपने Web.config में, निम्न अनुभाग में वांछित .NET फ्रेमवर्क संस्करणों के माध्यम से चलना, targetFrameworkमूल्यों को वांछित के रूप में बदलना :

<system.web>
    <customErrors mode="Off"/>
    <compilation debug="true" targetFramework="4.5.2"/>
    <httpRuntime targetFramework="4.5.2"/>
</system.web>

प्रत्येक लक्ष्य को अपने सर्वर पर प्रकाशित करें, फिर ब्राउज़ करें <app deploy URL>/Default। यदि आपका सर्वर लक्ष्य ढांचे का समर्थन करता है, तो सरल तार आपके तुच्छ नियंत्रक से प्रदर्शित होगा। यदि नहीं, तो आपको निम्नलिखित की तरह एक त्रुटि प्राप्त होगी:

सर्वर पर असमर्थित .NET 4.5.2 का उदाहरण

तो इस मामले में, मेरा लक्ष्य सर्वर अभी तक .NET फ्रेमवर्क 4.5.2 का समर्थन नहीं करता है।


1

स्थापित डॉटनेट संस्करण प्राप्त करने के लिए,
एक कंसोल ऐप बनाएं। इस वर्ग को जोड़ें

using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    public class GetDotNetVersion
    {
        public static void Get45PlusFromRegistry()
        {
            const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
            using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
            {
                if (ndpKey != null && ndpKey.GetValue("Release") != null)
                {
                    Console.WriteLine(".NET Framework Version: " + CheckFor45PlusVersion((int)ndpKey.GetValue("Release")));
                }
                else
                {
                    Console.WriteLine(".NET Framework Version 4.5 or later is not detected.");
                }
            }
        }

        // Checking the version using >= will enable forward compatibility.
        private static string CheckFor45PlusVersion(int releaseKey)
        {
            if (releaseKey >= 394802)
                return "4.6.2 or later";
            if (releaseKey >= 394254)
            {
                return "4.6.1";
            }
            if (releaseKey >= 393295)
            {
                return "4.6";
            }
            if ((releaseKey >= 379893))
            {
                return "4.5.2";
            }
            if ((releaseKey >= 378675))
            {
                return "4.5.1";
            }
            if ((releaseKey >= 378389))
            {
                return "4.5";
            }
            // This code should never execute. A non-null release key shoul
            // that 4.5 or later is installed.
            return "No 4.5 or later version detected";
        }
    }
    // Calling the GetDotNetVersion.Get45PlusFromRegistry method produces 
    // output like the following:
    //       .NET Framework Version: 4.6.1
}

नवीनतम संस्करण 4.7.2?
किकेनेट

0

अजीब तरह से, मैंने 1.1 करने के लिए कुछ कोड लिखे जब 1.1 बाहर आया (वह क्या था, सात साल पहले?) और इसे थोड़ा बाहर निकाल दिया जब 2.0 बाहर आया। मैंने वर्षों में इसे नहीं देखा क्योंकि हम अब अपने सर्वर का प्रबंधन नहीं करते हैं।

यह मूर्खतापूर्ण नहीं है, लेकिन मैं इसे वैसे भी पोस्ट कर रहा हूं क्योंकि मुझे यह हास्यप्रद लगता है; कि यह .NET में करना आसान है और पावर शेल में अभी भी आसान है।

bool GetFileVersion(LPCTSTR filename,WORD *majorPart,WORD *minorPart,WORD *buildPart,WORD *privatePart)
{
    DWORD dwHandle;
    DWORD dwLen = GetFileVersionInfoSize(filename,&dwHandle);
    if (dwLen) {
        LPBYTE lpData = new BYTE[dwLen];
        if (lpData) {
            if (GetFileVersionInfo(filename,0,dwLen,lpData)) {
                UINT uLen;  
                VS_FIXEDFILEINFO *lpBuffer;  
                VerQueryValue(lpData,_T("\\"),(LPVOID*)&lpBuffer,&uLen);  
                *majorPart = HIWORD(lpBuffer->dwFileVersionMS);
                *minorPart = LOWORD(lpBuffer->dwFileVersionMS);
                *buildPart = HIWORD(lpBuffer->dwFileVersionLS);
                *privatePart = LOWORD(lpBuffer->dwFileVersionLS);
                delete[] lpData;
                return true;
            }
        }
    }
    return false;
}

int _tmain(int argc,_TCHAR* argv[])
{
    _TCHAR filename[MAX_PATH];
    _TCHAR frameworkroot[MAX_PATH];
    if (!GetEnvironmentVariable(_T("systemroot"),frameworkroot,MAX_PATH))
        return 1;
    _tcscat_s(frameworkroot,_T("\\Microsoft.NET\\Framework\\*"));
    WIN32_FIND_DATA FindFileData;
    HANDLE hFind = FindFirstFile(frameworkroot,&FindFileData);
    if (hFind == INVALID_HANDLE_VALUE)
        return 2;
    do {
        if ((FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) &&
            _tcslen(FindFileData.cAlternateFileName) != 0) {
            _tcsncpy_s(filename,frameworkroot,_tcslen(frameworkroot)-1);
            filename[_tcslen(frameworkroot)] = 0;
            _tcscat_s(filename,FindFileData.cFileName);
            _tcscat_s(filename,_T("\\mscorlib.dll"));
            WORD majorPart,minorPart,buildPart,privatePart;
            if (GetFileVersion(filename,&majorPart,&minorPart,&buildPart,&privatePart )) {
                _tprintf(_T("%d.%d.%d.%d\r\n"),majorPart,minorPart,buildPart,privatePart);
            }
        }
    } while (FindNextFile(hFind,&FindFileData) != 0);
    FindClose(hFind);
    return 0;
}

0

खैर, जैसे डीन ने कहा, आप रजिस्ट्री को देख सकते हैं और वह कर सकते हैं जो उसने किया था। यह जांचने के लिए कि क्या उसके पास वास्तव में CLR .NET फ्रेमवर्क स्थापित है, आपको निर्देशिका MSCorEE.dllमें फ़ाइल की तलाश करनी चाहिए %SystemRoot%\System32


0

यह शायद संस्करणों को खोजने का एक बुरा तरीका है, लेकिन मैं हमेशा इस धारणा के तहत था कि सभी संस्करण स्थापित हो गए हैं <root>:\WINDOWS\Microsoft.NET\Framework

यह ऐसे नामों के साथ फ़ोल्डर प्रदान करता है जैसे कि v2.0.50727मेरा मानना ​​है कि विस्तृत संस्करण की जानकारी दें।


1
और यह सही तरीका हो सकता है लेकिन "क्या होगा?" मेरे सिर में कहते हैं, "क्या होगा अगर फाइलें हैं, लेकिन फ्रेमवर्क वास्तव में 'स्थापित' नहीं है और कुछ क्लूलेस एडमिन ने सोचा कि फाइलों की नकल करना इसका तरीका है?"
टॉम किड

0

यदि आप .NET 4.5 से पहले के संस्करण खोजना चाहते हैं, तो कंसोल एप्लिकेशन के लिए कोड का उपयोग करें। ऐशे ही:

using System;
using System.Security.Permissions;
using Microsoft.Win32;

namespace findNetVersion
{
    class Program
    {
        static void Main(string[] args)
        {
            using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,
                     RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
            {
                foreach (string versionKeyName in ndpKey.GetSubKeyNames())
                {
                    if (versionKeyName.StartsWith("v"))
                    {

                        RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName);
                        string name = (string)versionKey.GetValue("Version", "");
                        string sp = versionKey.GetValue("SP", "").ToString();
                        string install = versionKey.GetValue("Install", "").ToString();
                        if (install == "") //no install info, must be later version
                            Console.WriteLine(versionKeyName + "  " + name);
                        else
                        {
                            if (sp != "" && install == "1")
                            {
                                Console.WriteLine(versionKeyName + "  " + name + "  SP" + sp);
                            }
                        }
                        if (name != "")
                        {
                            continue;
                        }
                        foreach (string subKeyName in versionKey.GetSubKeyNames())
                        {
                            RegistryKey subKey = versionKey.OpenSubKey(subKeyName);
                            name = (string)subKey.GetValue("Version", "");
                            if (name != "")
                                sp = subKey.GetValue("SP", "").ToString();
                                install = subKey.GetValue("Install", "").ToString();
                            if (install == "") //no install info, ust be later
                                Console.WriteLine(versionKeyName + "  " + name);
                            else
                            {
                                if (sp != "" && install == "1")
                                {
                                    Console.WriteLine("  " + subKeyName + "  " + name + "  SP" + sp);
                                }
                                else if (install == "1")
                                {
                                    Console.WriteLine("  " + subKeyName + "  " + name);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

अन्यथा आप .NET 4.5 या बाद में इस तरह क्वेरी करके पा सकते हैं:

private static void Get45or451FromRegistry()
{
    using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,
       RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\"))
    {
        int releaseKey = (int)ndpKey.GetValue("Release");
        {
            if (releaseKey == 378389)

                Console.WriteLine("The .NET Framework version 4.5 is installed");

            if (releaseKey == 378758)

                Console.WriteLine("The .NET Framework version 4.5.1  is installed");

        }
    }
}

तब कंसोल परिणाम आपको बताएगा कि कौन से संस्करण स्थापित हैं और आपकी तैनाती के साथ उपयोग के लिए उपलब्ध हैं। यह कोड काम में आता है, इसलिए भी कि जब भी आप भविष्य में इसे जांचना चाहते हैं, तो उनके पास सहेजे गए समाधान हैं।


वैसे आप इस तरह से मेन टू प्राइवेट सेट करना चाहते हैं: प्राइवेट स्टैटिक वेड मेन (स्ट्रिंग [] args) {}
रॉनी पेटी

यह बहुत ज्यादा है कि माइक्रोसॉफ्ट ने इसे MSDN पर कैसे रखा है। msdn.microsoft.com/en-us/library/hh925568%28v=vs.110%29.aspx
रॉनी पेटी

0

मैं विंडोज अपडेट में गया और अपडेट इतिहास को देखा, यह जानते हुए कि सर्वर पैचिंग को अप-टू-डेट रखा गया है। मैंने .NET अद्यतन के लिए स्कैन किया और उसने मुझे दिखाया कि किन संस्करणों में अपडेट था, जिसने मुझे यह निष्कर्ष निकालने की अनुमति दी कि कौन से संस्करण इंस्टॉल किए गए थे।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.