मैं एक समान सेटअप का उपयोग कर रहा हूं, बस मैं अपने nuget package से एफ # कंपाइलर का उपभोग कर रहा हूं - यह साझा निर्माण वातावरण में nicer काम करता है।
आप अपने एफ # परियोजनाओं के सभी में शामिल किया जाना एक .props
फ़ाइल की आवश्यकता होगी, मैं इसे fsharp_project.props
कहा जाता है। उस प्रोप फ़ाइल को बदलकर, आप अपने सभी F # प्रोजेक्ट्स के लिए कंपाइलर संस्करण अपडेट कर सकते हैं।
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PackageRoot>C:\packages\Fsharp.Compiler.Tools.Nuget</PackageRoot>
<FscToolPath>$(PackageRoot)\tools</FscToolPath>
<FSharpVersion>v3.0</FSharpVersion>
</PropertyGroup>
<ItemGroup>
<Reference Include="FSharp.Core">
<HintPath>$(PackageRoot)\tools\fsharp.core.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
आप एफ # संकलक के अपने स्थानीय संस्करण के लिए पथ समायोजित करने की आवश्यकता है, और भी मुख्य लाइब्रेरीज है कि आप उपयोग करना चाहते हैं: इसकी सामग्री के रूप में निम्नानुसार होना चाहिए। इसके अलावा अपने .fsproj
फ़ाइल में नीचे
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Project="C:\whereever\fsharp_project.props"/>
...
आप FSharp.Core.dll
के संदर्भ देखेंगे:
फिर, इस प्रकार है कि फ़ाइल का उपभोग करने के लिए अपने .fsproj
फ़ाइल को संशोधित। इसे हटाएं - प्रोप फ़ाइल में, पहले से ही मूल पुस्तकालयों के संस्करण का संदर्भ है जो संकलक के साथ आते हैं।
अपनी प्रोजेक्ट को दोबारा लोड करें और फिर से बनाएं, यह fsc.exe
का पूरा पथ प्रिंट करेगा जो इसका उपयोग कर रहा है।
एक तरफ ध्यान दें के रूप में: .props
फाइलों के साथ एक ही चाल भी अपने एफ # कोड के सी # उपभोक्ताओं में FSharp.Core.dll
का सही संस्करण संदर्भित करने के लिए अविश्वसनीय रूप से उपयोगी है - कि क्रम त्रुटियों की एक लगातार स्रोत है। प्रत्येक .csproj
में केवल FSharp.Core.dll
संदर्भित एक प्रोप फ़ाइल शामिल करें, और आप 'cprops' फ़ाइल को अपडेट करके सभी सी # परियोजनाओं को मूल पुस्तकालयों के एक नए संस्करण में स्विच करने में सक्षम होंगे।
स्रोत
2017-05-08 10:46:13
यह शानदार रूप से काम करता है, और सही है। धन्यवाद। – Arafangion