मैं सी # से कुछ एफ # प्रकार (Matrix एट अल) का उपयोग कर रहा हूं और इसलिए मुझे अपने सी # प्रोजेक्ट में FSharp.Core असेंबली का संदर्भ देने की आवश्यकता है। अब तक सब ठीक है.एक सी # प्रोजेक्ट में FSharp.Core सहित: हल करने वाले प्रकार टकराव
हालांकि, स्पष्ट रूप से mscorlib.dll (v4) में परिभाषित कुछ प्रकार हैं जो FSharp.Core (v2) में "डुप्लीकेट" हैं, जैसे System.Tuple
और System.IObservable
। मैं नहीं समझ सकता क्यों यह नेट 4 में है Matt Ellis specifically said they would be removed in his MSDN article:
One language suffering that [duplication] problem was F#, which previously had defined its own tuple type in FSharp.Core.dll but will now use the tuple added in Microsoft .NET Framework 4.
मैं इस विशेष अनुचित दोहराव अतीत देखने के लिए अगर मैं जो एक मैं अपनी सी # कार्यक्रम में उपयोग करना चाहते हैं निर्दिष्ट कर सकते हैं के लिए तैयार हूँ, फिर भी । जब मैं उदाहरण के लिए, System.Tuple
प्रकार का उपयोग करने का प्रयास करें, मैं निम्नलिखित सी # संकलक त्रुटि मिलती है:
Error 2 The type 'System.Tuple' exists in both 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client\mscorlib.dll' and 'c:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v2.0\FSharp.Core.dll'
इस के चारों ओर जिस तरह से, जाहिरा तौर पर, a switch on the C# compiler command line which aliases the type है:
csc.exe MyType.cs /reference:System.Tuple`2=mscorlib.dll /reference:FSharp.Core.dll
हालांकि, मैं नहीं कर सकता इस पैरामीटर को सी # कंपाइलर को भेजने के लिए विजुअल स्टूडियो प्राप्त करने का एक तरीका खोजें।
किसी के पास इसका समाधान है?
ध्यान दें कि 4.0 संस्करण 'c: \ Program Files (x86) \ संदर्भ असेंबली \ Microsoft \ FSharp \ 2.0 \ Runtime \ v4.0 \ FSharp.Core.dll' में रहता है। क्या आपने संदर्भ प्राप्त करने के लिए 'एड संदर्भ' का उपयोग किया था? मैं सोच रहा हूं कि आप पहली बार 4.0 प्रोजेक्ट में 2.0 को संदर्भित करते हुए कैसे घायल हो गए थे। – Brian
हाँ, मैंने इसे प्राप्त करने के लिए "संदर्भ जोड़ें" का उपयोग किया ... हालांकि, मेरे पास बेहतर डिजाइन किए गए संदर्भ संदर्भ संवाद के साथ वीएस पावरटूल हैं, इसलिए यह समस्या हो सकती है। – codekaizen
@ ब्रायन, स्क्रैच कि। मैंने इसे ब्राउज़ किया होगा, और यह समझ में नहीं आया कि एफ # वी 2.0 सीएलआरवी 2 को भी लक्षित कर सकता है, और इसलिए विधानसभा के दो अलग-अलग सेट हैं। – codekaizen