2015-08-06 11 views
12

अपने प्रोजेक्ट के लिए निर्माण निम्न त्रुटि के साथ failing on Travis है:मेरा एफ # प्रोजेक्ट स्थानीय रूप से क्यों बना है लेकिन ट्रैविस पर असफल रहा है?

FSC: error FS0193: The module/namespace 'System.Net' from compilation unit 'System' did not contain the namespace, module or type 'WebClient'

मुख्य परियोजना किसी भी निर्भरता नहीं है, और परीक्षण परियोजना System.Net या WebClient पर निर्भर नहीं करता है, तो मुझे यकीन है कि नहीं कर रहा हूँ यह कैसे लागू होता है।

सब कुछ स्थानीय स्तर पर ठीक काम करता है, तो मैं एक संस्करण बेमेल कहीं यह सोचते हैं रहा हूँ, लेकिन नहीं क्या पहचान करने में सक्षम किया गया है।

अपने स्थानीय निर्माण के उत्पादन में this text file में पाया जा सकता।


अद्यतन

निम्नलिखित GitHub issue@7sharp9 द्वारा बनाई गई यह पाया गया है कि यह एक मोनो packaging bug है।

सुझाए गए workaround को इसके बजाय NuGet पैकेज से FSharp.Core संदर्भित करना था, जो मेरे लिए काम करता था।

आप only use the NuGet package when the canonical path is unavailable करना चाहते हैं के रूप में मैंने किया था हो सकता है।

+0

कुल अंधा शॉट, लेकिन लगता है कि आप स्थानीय रूप से FSharp.Core 4.3.1.0 असेंबली के साथ निर्माण कर रहे हैं, जबकि ट्रैविससीआई 3.x का उपयोग करता है।उनके पास विभिन्न पारगमन निर्भरता हो सकती है। मैंने थोड़ी सी गड़बड़ी की है और ऐसा लगता है कि पीसीसी के साथ आप पहले से ही कई एफ # मुद्दों का सामना कर चुके हैं - यह एक और हो सकता है; 4.x में तय, 3.x में मौजूद है। क्या आप इसे 3.x पर कहीं भी बनाने की कोशिश कर सकते हैं? मैं इसे इंगित करने की कोशिश करता हूं, लेकिन हर जगह 4.x भी है। –

उत्तर

11

ट्रैविस संस्करण GAC से एक FSharp.Core साथ बनाने जा रहा है:

-r:/usr/lib/mono/gac/FSharp.Core/4.3.1.0__b03f5f7f11d50a3a/FSharp.Core.dll

जबकि अपने स्थानीय निर्माण उपयोग कर रहा है FSharp.Core पर:

-r:"/Library/Frameworks/Mono.framework/Versions/4.0.2/lib/mono/xbuild/../Reference Assemblies/Microsoft/FSharp/.NETCore/3.259.3.1/FSharp.Core.dll"

त्रुटि मिल रहा है:

FSC: error FS0193: The module/namespace 'System.Net' from compilation unit 'System' did not contain the namespace, module or type 'WebClient'

ने एक बेमेल FSharp.Core को इंगित किया जहां यह GAC में स्थित Fsharp.Core से System.Net संदर्भों को हल करने का प्रयास कर रहा है, आपके प्रोजेक्ट में अन्य संदर्भ सभी पीसीएल 25 9 हैं जो इस संदर्भ को पूरा नहीं करेंगे।

क्यों, क्या आप डायग्नोस्टिक स्विच का उपयोग करके निर्माण करने के लिए ट्रैविस प्राप्त कर सकते हैं?

ठीक है इतने पर निम्नलिखित, अब वहाँ एक नैदानिक ​​जुड़ा हुआ निर्माण होता है, समस्या यहाँ है:

HintPath /usr/lib/mono/xbuild/../Reference Assemblies/Microsoft/FSharp/.NETCore/3.259.3.1/FSharp.Core.dll does not exist. Reference FSharp.Core resolved to /usr/lib/mono/gac/FSharp.Core/4.4.0.0__b03f5f7f11d50a3a/FSharp.Core.dll. CopyLocal = False Reference found at search path {GAC}

ट्रैविस उदाहरण नहीं है:

/usr/lib/mono/xbuild/../Reference Assemblies/Microsoft/FSharp/.NETCore/3.259.3.1/FSharp.Core.dll

तो यह गाक में बदल जाती ।

हाल ही में एक मुद्दा जहां FSharp.Core को सही स्थान पर स्थापित नहीं किया गया था नहीं था, शायद यह है कि की एक मिसाल है।

मैं क्या करूँगा मोनो के एक अलग संस्करण को यहां वर्णित अनुसार कोशिश करें: http://docs.travis-ci.com/user/languages/csharp/ शायद पुराने या पुराने 3.12 या अल्फा या बीटा की कोशिश करें ताकि यह सुनिश्चित हो सके कि यह वास्तव में मुद्दा है।

+0

इस पर ध्यान देने के लिए धन्यवाद। मैंने ट्रैविस बिल्ड से लिंक करने के लिए प्रश्न अपडेट किया जहां/verbosity: डायग्नोस्टिक –

+0

अपडेट किया गया मुख्य टेक्स्ट – 7sharp9

+0

मैंने एक बिल्ड मैट्रिक्स जोड़ा। कुछ संस्करणों में अलग-अलग संदेश होते हैं लेकिन यह अनिवार्य रूप से एक ही समस्या जैसा दिखता है: https://travis-ci.org/functionauts/Result/builds/75306324 –

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

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