2016-06-09 6 views
15

नोट: यहां मैं डॉटनेट कोर के बारे में बात करता हूं और पूर्ण ढांचे नहीं! पूर्ण ढांचे के लिए इस पर बहुत सारे दस्तावेज़ हैं, लेकिन यह डॉटनेट कोर है।सी # - विजुअल स्टूडियो 2015 में एफ # इंटरऑप समर्थन .NET कोर

मैं एक एफ # से

dotnet new --lang F# 

और एक ASP.NET कोर RC2 सी # आवेदन (फ़ाइल द्वारा बनाई> वी.एस. में नया प्रोजेक्ट) बनाया पुस्तकालय है।

अब मैं सी # से मेरी एफ # लाइब्रेरी का उपयोग करता हूं (मुझे लगता है कि एक बहुत ही सामान्य परिदृश्य ...)। F # प्रोजेक्ट को प्रोजेक्ट.जेसन में किसी अन्य .net लाइब्रेरी के रूप में संदर्भित किया गया है (इसे निर्भरताओं के तहत सूचीबद्ध करके)

अब यह सब संकलित और ठीक काम करता है, जो बढ़िया है!

एकमात्र समस्या यह है कि वीएस इसका समर्थन नहीं कर रहा है। कोई इंटेलिजेंस और लाइन नहीं है, जहां मैं सी # से F # फ़ंक्शंस का उपयोग करता हूं, त्रुटि के रूप में चिह्नित किया जाता है। सी # से एफ # में डिबगिंग या तो काम नहीं करता है। मैंने वीएस कोड के साथ मैक पर कोशिश की, वही ...

जब मैं संकलित करता हूं, तो कंपाइलर्स इसे समझते हैं और सब कुछ ठीक है।

यह स्क्रीनशॉट यह सारांशित करता है (यह वह जगह है जहाँ मैं सी # से एक एफ # फ़ंक्शन को कॉल करें): enter image description here

तो बुनियादी तौर पर मैं इसे में त्रुटियों की एक गुच्छा, जो अभी भी संकलित साथ वी.एस. समाधान के साथ समाप्त हो गया।

Here एक साधारण प्रजननकर्ता है।

सवाल:

  1. IntelliSense चाहिए और सब पर वी.एस. में डिबगिंग काम करता है?
  2. यदि हां, तो मैंने क्या गलत किया?
  3. यदि नहीं, तो क्या यह परिदृश्य भविष्य में शामिल होने की योजना है? (CLI द्वारा बनाई गई - dotnet new --lang F#) project.json -

    "version": "1.0.0-*", 
        "buildOptions": { 
        "compilerName": "fsc", 
        "compile": { 
         "includeFiles": [ 
         "FSharpLibrary.fs" 
         ] 
        } 
        }, 
        "dependencies": { 
        "Microsoft.FSharp.Core.netcore": "1.0.0-alpha-160316", 
        "NETStandard.Library": "1.5.0-rc2-24027" 
        }, 
        "tools": { 
        "dotnet-compile-fsc": { 
         "version": "1.0.0-*", 
         "imports": [ 
         "dnxcore50", 
         "portable-net45+win81", 
         "netstandard1.3" 
         ] 
        } 
        }, 
        "frameworks": { 
        "netstandard1.5": { 
         "imports": [ 
         "portable-net45+win8", 
         "dnxcore50" 
         ] 
        } 
        } 
    

    एफ # पुस्तकालय, कोड

    एफ # पुस्तकालय:

    namespace FSharpLibrary 
    
    module Sample = 
    
        let public FSharpFunction number = 
          printfn "Hello From F#, %d" number 
    

यहाँ प्रतिलिपि प्रस्तुत से कोड है

सी # एप्लिकेशन (यहां मैं एक कंसोल ऐप का उपयोग करता हूं, लेकिन एएसपीनेट कोर के समान चीजें)

using System; 
namespace ConsoleAppCSharp 
{ 
    public class Program 
    { 
     public static void Main(string[] args) 
     { 
      FSharpLibrary.Sample.FSharpFunction(42); //<- This is red. and marked as error.  
      Console.ReadKey(); 
     } 
    } 
} 

सी # कंसोल आवेदन project.json

{ 
    "version": "1.0.0-*", 
    "buildOptions": { 
    "emitEntryPoint": true 
    }, 

    "dependencies": { 
    "LibraryFSharp": "1.0.0-*", 
    "Microsoft.NETCore.App": { 
     "type": "platform", 
     "version": "1.0.0-rc2-3002702" 
    } 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": "dnxcore50" 
    } 
    } 
} 

धन्यवाद

+0

मैंने अपना जवाब हटा दिया है, सोचा था कि इसे छोड़ने के लिए बेहतर हो सकता है, जैसा कि मैंने किया था, वैसे ही किसी और ने जवाब देने का विचार किया - यह एक क्यूए साइट का पूरा बिंदु है, एक सवाल पूछा जाता है, और कई उत्तरों प्रदान किए जाते हैं संदर्भ के भीतर और बाहर दोनों। मैं तुम्हारे लिए निम्नलिखित पाया है: https://github.com/Microsoft/visualfsharp/wiki/F%23-for-CoreCLR---Status यह डिबगिंग बस अभी तक समर्थित नहीं है प्रतीत होता है, यह ऐसा लगता है कि फिलहाल खराब वीएस समर्थन भी है। – Eon

+0

@ क्रॉहन मैंने इस सवाल में जोड़ा कि यह पूर्ण रूपरेखा नहीं है, इसलिए मुझे लगता है कि इसके साथ कोई नया जवाब नहीं होगा। जिथब पेज के लिए धन्यवाद। मैंने पहले ही देखा है और यह वास्तव में कहता है कि यह समर्थित नहीं है, लेकिन वह पृष्ठ पिछली बार 27 जनवरी को अपडेट किया गया था, जो एएसपी.नेट कोर की आरसी 1/पूर्वावलोकन 1 रिलीज से पहले था, इसलिए मुझे यकीन नहीं है कि यह 100% सही। – gregkalapos

+1

ठीक है, इसलिए मैंने जो गिटब चर्चाओं पर आधारित लिखा है, वह वर्तमान चरण है और इंटेलिजेंस और डिबगिंग समर्थित नहीं हैं: https://github.com/dotnet/roslyn-project-system/issues/219 https: // github। कॉम/माइक्रोसॉफ्ट/विजुअलफर्श/मुद्दों/11 9 3 https://github.com/Microsoft/visualfsharp/issues/496 – gregkalapos

उत्तर

2

तो वर्तमान में क्या मैं ऊपर वर्णित सभी का समर्थन पूर्वावलोकन टूलींग के साथ दृश्य स्टूडियो 2015 में आपके पास है। विजुअल स्टूडियो 15 उम्मीदवार बेहतर होगा, लेकिन वर्तमान पूर्वावलोकन (पूर्वावलोकन 5) does not have .NET Core support at all

विजुअल स्टूडियो कोड की कोशिश करने के लायक क्या है। एफ # में आपको टाइप के लिए इंटेलिजेंस मिलता है जिसे सी # में परिभाषित किया जाता है। इसलिए एफ #-सी # इंटरऑपबिलिटी के लिए वर्तमान में वीएस कोड पूर्ण वीएस की तुलना में काफी बेहतर समर्थन है।

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