2016-07-03 4 views
25

मैंने सुना है कि एएसपी.नेट कोर .NET Framework 4.6.1 को लक्षित कर सकता है। क्या इसका मतलब है कि यह केवल .NET 4.6.1 का उपयोग कर सकता है, या यह .NET कोर के साथ .NET 4.6.1 का उपयोग कर सकता है?क्या मैं केवल एएसपी.NET कोर लक्ष्यीकरण का उपयोग कर सकता हूं .NET 4.6.1?

उत्तर

36

आप .NET कोर 1.0, या .NET Framework 4.5.1+ के शीर्ष पर ASP.NET कोर चला सकते हैं। चूंकि "एएसपी.नेट कोर" वास्तव में केवल NuGet संकुल का एक सेट है, इसलिए आप उन्हें किसी भी ढांचे को लक्षित करने वाली परियोजना में स्थापित कर सकते हैं।

उदाहरण के लिए, एक .NET कोर परियोजना इस प्रकार दिखाई देगा:

"dependencies": { 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    "Microsoft.NETCore.App": { 
     "type": "platform", 
     "version": "1.0.0" 
    } 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { } 
    } 

एक .नेट फ्रेमवर्क परियोजना (.NET 4.6.1 के मामले में) की तरह लग रहे हैं जबकि:

"dependencies": { 
    "Microsoft.AspNetCore.Mvc": "1.0.0" 
    }, 
    "frameworks": { 
    "net461": { } 
    } 

यह काम करता है क्योंकि Microsoft.AspNetCore.Mvc पैकेज में .NET Framework 4.5.1 और .NET मानक लाइब्रेरी 1.6 दोनों के लिए लक्ष्य हैं।

यह भी एक परियोजना से दोनों चौखटे के लिए निर्माण करने के लिए संभव है:

"dependencies": { 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    }, 
    "frameworks": { 
    "net461": { }, 
    "netcoreapp1.0": { 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.0.0" 
     } 
     } 
    } 
    } 

इस मामले में, ध्यान दें कि Microsoft.NETCore.App निर्भरता frameworks खंड के अंदर ले जाया जाता है। यह आवश्यक है क्योंकि netcoreapp1.0, net461 पर निर्माण करते समय यह निर्भरता केवल तभी जरूरी है।

+2

एएसपी.नेट कोर 2.0 पूर्ण .NET ढांचे को लक्षित करने में सक्षम नहीं होगा ([github देखें] (https://github.com/aspnet/Home/issues/2022)), केवल .NET कोर 2.0 –

+5

आआंदंद सौभाग्य से , उन्होंने अपना दिमाग बदल दिया ([स्रोत] (http://www.theregister.co.uk/2017/05/11/microsoft_asp_net_core_2_0/))। –

4

आप दोनों कर सकते हैं - यानी केवल डेस्कटॉप सीएलआर, कोर सीएलआर या दोनों को लक्षित करें। डेस्कटॉप क्लियर 4.6.1 को लक्षित करने के लिए लक्ष्य ढांचे के रूप में net461 moniker का उपयोग करें। कोर क्लियर का उपयोग netcoreapp1.0 को लक्षित करने के लिए। आप उन्हें एक तरफ इस्तेमाल कर सकते हैं लेकिन यह थोड़ा अजीब लगता है - आप ऐप के मामले में ऐसा क्यों करेंगे?

+1

धन्यवाद। कुछ वेब होस्टिंग सेवाएं केवल .NET 4.6.1 का समर्थन कर रही हैं। इसलिए मैं Asp.NET कोर का उपयोग करना चाहता हूं लेकिन फिर भी इन सेवाओं पर इसे विफल कर सकता हूं। –

+1

@AnyName Well, ASP.Net कोर लक्ष्यीकरण डेस्कटॉप .NET अभी भी Asp.NET कोर है। यदि आपके पास अलग कोड नहीं है तो क्रॉस संकलन का बिंदु क्या है - केवल net4x को लक्षित करें? दूसरी ओर 'netcoreapp1.0' को लक्षित करते समय वास्तव में Asp.NET कोर के दो "स्वाद" होते हैं - यह एक पोर्टेबल या स्टैंडअलोन (यानी seflcontained) ऐप हो सकता है। यदि आपका प्रदाता पोर्टेबल .NET कोर ऐप्स का समर्थन नहीं करता है तो एक स्टैंडअलोन ऐप बनाएं - यह स्वयं निहित है (यानी रनटाइम है) इसलिए इसमें कोई अतिरिक्त निर्भरता नहीं है)। – Pawel

+0

क्या इसका मतलब है कि अगर मैं प्रदाता .NET कोर (लक्षित .NET के बावजूद) का समर्थन नहीं करता है तो मैं ऐप को तैनात नहीं कर सकता? वर्तमान में, मैं साझा मेजबान का उपयोग कर रहा हूं इसलिए बहुत सारे विकल्प नहीं हैं। –

संबंधित मुद्दे