नोट: यहां मैं डॉटनेट कोर के बारे में बात करता हूं और पूर्ण ढांचे नहीं! पूर्ण ढांचे के लिए इस पर बहुत सारे दस्तावेज़ हैं, लेकिन यह डॉटनेट कोर है।सी # - विजुअल स्टूडियो 2015 में एफ # इंटरऑप समर्थन .NET कोर
मैं एक एफ # से
dotnet new --lang F#
और एक ASP.NET कोर RC2 सी # आवेदन (फ़ाइल द्वारा बनाई> वी.एस. में नया प्रोजेक्ट) बनाया पुस्तकालय है।
अब मैं सी # से मेरी एफ # लाइब्रेरी का उपयोग करता हूं (मुझे लगता है कि एक बहुत ही सामान्य परिदृश्य ...)। F # प्रोजेक्ट को प्रोजेक्ट.जेसन में किसी अन्य .net लाइब्रेरी के रूप में संदर्भित किया गया है (इसे निर्भरताओं के तहत सूचीबद्ध करके)
अब यह सब संकलित और ठीक काम करता है, जो बढ़िया है!
एकमात्र समस्या यह है कि वीएस इसका समर्थन नहीं कर रहा है। कोई इंटेलिजेंस और लाइन नहीं है, जहां मैं सी # से F # फ़ंक्शंस का उपयोग करता हूं, त्रुटि के रूप में चिह्नित किया जाता है। सी # से एफ # में डिबगिंग या तो काम नहीं करता है। मैंने वीएस कोड के साथ मैक पर कोशिश की, वही ...
जब मैं संकलित करता हूं, तो कंपाइलर्स इसे समझते हैं और सब कुछ ठीक है।
यह स्क्रीनशॉट यह सारांशित करता है (यह वह जगह है जहाँ मैं सी # से एक एफ # फ़ंक्शन को कॉल करें):
तो बुनियादी तौर पर मैं इसे में त्रुटियों की एक गुच्छा, जो अभी भी संकलित साथ वी.एस. समाधान के साथ समाप्त हो गया।
Here एक साधारण प्रजननकर्ता है।
सवाल:
- IntelliSense चाहिए और सब पर वी.एस. में डिबगिंग काम करता है?
- यदि हां, तो मैंने क्या गलत किया?
- यदि नहीं, तो क्या यह परिदृश्य भविष्य में शामिल होने की योजना है? (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"
}
}
}
धन्यवाद
मैंने अपना जवाब हटा दिया है, सोचा था कि इसे छोड़ने के लिए बेहतर हो सकता है, जैसा कि मैंने किया था, वैसे ही किसी और ने जवाब देने का विचार किया - यह एक क्यूए साइट का पूरा बिंदु है, एक सवाल पूछा जाता है, और कई उत्तरों प्रदान किए जाते हैं संदर्भ के भीतर और बाहर दोनों। मैं तुम्हारे लिए निम्नलिखित पाया है: https://github.com/Microsoft/visualfsharp/wiki/F%23-for-CoreCLR---Status यह डिबगिंग बस अभी तक समर्थित नहीं है प्रतीत होता है, यह ऐसा लगता है कि फिलहाल खराब वीएस समर्थन भी है। – Eon
@ क्रॉहन मैंने इस सवाल में जोड़ा कि यह पूर्ण रूपरेखा नहीं है, इसलिए मुझे लगता है कि इसके साथ कोई नया जवाब नहीं होगा। जिथब पेज के लिए धन्यवाद। मैंने पहले ही देखा है और यह वास्तव में कहता है कि यह समर्थित नहीं है, लेकिन वह पृष्ठ पिछली बार 27 जनवरी को अपडेट किया गया था, जो एएसपी.नेट कोर की आरसी 1/पूर्वावलोकन 1 रिलीज से पहले था, इसलिए मुझे यकीन नहीं है कि यह 100% सही। – gregkalapos
ठीक है, इसलिए मैंने जो गिटब चर्चाओं पर आधारित लिखा है, वह वर्तमान चरण है और इंटेलिजेंस और डिबगिंग समर्थित नहीं हैं: https://github.com/dotnet/roslyn-project-system/issues/219 https: // github। कॉम/माइक्रोसॉफ्ट/विजुअलफर्श/मुद्दों/11 9 3 https://github.com/Microsoft/visualfsharp/issues/496 – gregkalapos