簡體   English   中英

為什么我的F#項目在本地構建,但在Travis上失敗?

[英]Why does my F# project build locally but fail on Travis?

我的項目的構建在Travis失敗,並出現以下錯誤:

FSC:錯誤FS0193:編譯單元“系統”中的模塊/名稱空間“ System.Net”不包含名稱空間,模塊或類型“ WebClient”

主項目沒有任何依賴關系,測試項目也不依賴System.NetWebClient ,因此我不確定在這里如何應用。

本地一切正常,因此我假設某個地方的版本不匹配,但無法識別什么。

我的本地版本的輸出可以在此文本文件中找到。


更新資料

@ 7sharp9創建的GitHub問題之后,發現這是一個Mono 打包錯誤

建議的解決方法是從NuGet包中引用FSharp.Core ,它對我FSharp.Core

您可能希望僅在規范路徑不可用時才使用NuGet包 ,就像我一樣。

travis版本使用GACFSharp.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:錯誤FS0193:編譯單元“系統”中的模塊/名稱空間“ System.Net”不包含名稱空間,模塊或類型“ WebClient”

表示不匹配的FSharp.Core ,其中它試圖從位於GAC中的Fsharp.Core解析System.Net引用,您項目中的其他引用都是PCL 259,將不滿足該引用。

至於為什么,您可以使用診斷開關讓travis建立嗎?

好的,接下來,既然已經鏈接了診斷版本,問題就在這里:

提示路徑/usr/lib/mono/xbuild/../Reference Assembly / Microsoft / FSharp / .NETCore / 3.259.3.1 / FSharp.Core.dll不存在。 參考FSharp.Core解析為/usr/lib/mono/gac/FSharp.Core/4.4.0.0__b03f5f7f11d50a3a/FSharp.Core.dll。 在搜索路徑{GAC}中找到CopyLocal = False參考

travis實例沒有:

/usr/lib/mono/xbuild/../參考程序集/Microsoft/FSharp/.NETCore/3.259.3.1/FSharp.Core.dll

因此它恢復為gac。

最近有一個問題,即未將FSharp.Core安裝到正確的位置,這可能是該問題的一種體現。

我要做的是嘗試按以下說明嘗試使用其他版本的mono: http : //docs.travis-ci.com/user/languages/csharp/也許嘗試使用像3.12或alpha或beta這樣的舊版本來嘗試確認此問題。確實是問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM