[英]Why does my F# project build locally but fail on Travis?
FSC:錯誤FS0193:編譯單元“系統”中的模塊/名稱空間“ System.Net”不包含名稱空間,模塊或類型“ WebClient”
主項目沒有任何依賴關系,測試項目也不依賴System.Net
或WebClient
,因此我不確定在這里如何應用。
本地一切正常,因此我假設某個地方的版本不匹配,但無法識別什么。
我的本地版本的輸出可以在此文本文件中找到。
更新資料
在@ 7sharp9創建的GitHub問題之后,發現這是一個Mono 打包錯誤 。
建議的解決方法是從NuGet包中引用FSharp.Core
,它對我FSharp.Core
。
您可能希望僅在規范路徑不可用時才使用NuGet包 ,就像我一樣。
travis版本使用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:錯誤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.